问题标签 [grails-4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
grails - 使用多选枚举字段为域对象创建表单失败,并显示“属性 xxx 类型不匹配”
我正在使用带有 GORM 7.0.7.RELEASE 的 Grails 4.0.4 我使用的数据库是 MongoDB
我可以成功运行应用程序并导航到域类的创建表单。我可以选择单例字段的值someOtherEnum
。我可以多选categories
字段的值。但是,当我提交表单时,我收到以下消息:“属性类别类型不匹配”。我根据此处发布的另一个问题的答案使用了这种方法,但它对我不起作用。我没有hasMany
像该用户那样使用嵌入式枚举或集合。
控制器和服务由generate-all
命令生成。
如何在 Grails 4 中向创建和编辑表单添加多个枚举字段?
我有一个枚举,src/main/groovy/com/project/core/dsl
用于填充域类的多选字段:
领域类:
在create.gsp
视图中,我有这种形式:
域类控制器:
域对象服务:
java - 如何在grails 4中集成java类的hibernate xml映射?
我正在尝试通过我的 grails 应用程序中的休眠 xml 映射配置来映射 POJO。这在 grails 2.x 版本中运行良好,但在 grails 4 中它不采用位于位置的休眠配置:
这是:
com.prabin.test.hbm.xml 也与 hibernate.cfg.xml 位于同一位置
com.prabin.test.hbm.xml:
我的 Pojo 位于:
这是:
应用程序没有采用休眠配置文件,因此没有为我的 pojo 创建任何表。Hibernate 配置文件被完全忽略。
grails - spring security core plugin - 使用户会话无效
我正在使用 grails 4.0.3,并且正在尝试以编程方式注销用户。我搜索了这个,但我找到的所有解决方案都适用于 grails 2,不适用于 grails 4。
有谁知道如何使用户会话无效?
grails - 引起:java.lang.ClassNotFoundException:org.grails.core.cfg.DeprecatedGrailsConfig
我正在将我的项目从 grails 3 迁移到 grails 4。在进行引导运行时,我遇到以下错误:不确定它是否是一些已弃用的导入或方法实例化
该错误还指出了包含此行的文件:
hibernate - 如何在不需要迁移插件的情况下使用 Grails 4.0.5 (Hibernate 5) 在模式生成期间添加自定义数据库对象?
我需要添加一些作为系统架构设计一部分的函数和视图。这应该是会话启动的一部分(尤其是在开发和测试中),因为数据源上的 dbCreate create-drop 设置使得初始开发和测试环境最初设置一致且原始。
使用数据库迁移插件没有意义,因为这些是预定义的 db 对象,它们是整个系统设计的一部分,除非它们本身正在更改,否则它们不属于更改集。相当于要求我们在变更集中添加域表生成sql。如果它正在发生变化(这就是变更集的用途!),这是有道理的,但如果它只是最初创建的,那么它在概念上放置它的位置是错误的。
此外,我们不能使用迁移插件,因为我们的生产 QA 流程不允许这种方法(它是与项目源无关的外部流程,因此在多个项目中维护更改集没有意义)。
Hibernate 从 grails 域对象自动生成它的模式,我们有视图的 sql(依赖于域对象中的表)以及这些视图中使用的一些函数的 sql,我们只需要确定在哪里最好让 GORM / Hibernate 执行所述 sql,以便在生成模式时生成适当的 db 对象。
在 Grails 2.5.5 中,我使用自定义 GrailsAnnotationConfiguration 来挂钩模式生成过程。这不再是在 grails 4+ 中使用 Hibernate 5 的选项。
为了在不依赖数据库迁移插件的情况下添加自定义数据库对象(如函数和视图),与 Hibernate Schema 生成过程相关联的最佳方法是什么?
grails - 一旦在春季安全休息中过期,您可以刷新 access_token 吗?
查看您需要发布到 /oauth/access_token 的文档
该示例不会随请求发送 BEARER 令牌,但使用 grails 4.0.5 和 spring-security-rest-3.0.1,当我尝试刷新令牌时,除非我包含当前的不记名令牌,否则请求将被拒绝。
如果当前不记名令牌已过期,则刷新消息因尝试使用过期令牌而被拒绝。
我正在使用以下 filterChain (直接来自文档)
文档中还有其他一些关于设置 ANONYMOUS_ACCESS 的条目,但这最终会创建一个会话,并导致其他一些我还不太清楚的奇怪现象。
是否有其他配置可以使“/oauth/access_token”端点像“/api/login”请求一样工作?
gradle - 无法启动 Grails 4 应用程序,因为找不到或加载主类
我最近将我的 grails 项目升级到最新版本,但在启动时遇到以下错误:
以下是我的配置文件:
构建.gradle:
gradle.properties:
gradle-wrapper.properties
我尝试了Gradle 提供的内容 - 找不到或加载主类,但没有帮助。
关于如何解决这个问题的任何想法?
grails - Grails 4、Ubuntu 20、嵌入式 Tomcat - 请求中没有多部分文件
大约一周以来,我一直在尝试解决 grails 4 应用程序的 prod 环境部署问题。当我通过 run-app 或 java -jar warfile.war 在本地运行我的应用程序时,我可以上传文件并在我的控制器中使用多部分内容。当我在 lightail ubuntu 20 服务器上部署运行应用程序时,由于某种原因,这些部件根本不存在。
UI表单代码:
UI ajax/js 代码:
控制器(请注意,这里所有的日志语句都是为了清楚起见,写起来很丑,一旦清楚就会被清理):
日志(在产品中):2020-12-07 18:11:51.977 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : FilesController.uploadImage: IN for user uuid-xxxxx 2020-12-07 18:11:51.978 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : params k controller, v files 2020-12-07 18:11:51.978 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : params k format, v null 2020-12-07 18:11:51.978 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : params k action, v uploadImage 2020-12-07 18:11:51.980 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : headers k host, v [xxx.com] 2020-12-07 18:11:51.980 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : headers k connection, v [keep-alive] 2020-12-07 18:11:51.980 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : headers k content-length, v [3477461] 2020-12-07 18:11:51.980 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : headers k accept, v [*/*] 2020-12-07 18:11:51.981 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : headers k x-requested-with, v [XMLHttpRequest] 2020-12-07 18:11:51.981 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : headers k user-agent, v [Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36] 2020-12-07 18:11:51.981 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : headers k content-type, v [multipart/form-data; boundary=----WebKitFormBoundaryNqkRdP2KDJ3aJYMb] 2020-12-07 18:11:51.981 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : headers k origin, v [https://example.com] 2020-12-07 18:11:51.981 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : headers k sec-fetch-site, v [same-origin] 2020-12-07 18:11:51.982 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : headers k sec-fetch-mode, v [cors] 2020-12-07 18:11:51.982 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : headers k sec-fetch-dest, v [empty] 2020-12-07 18:11:51.982 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : headers k referer, v [https://example.com/toolsList/list?toolSetID=2c9a8202763005520176300c0254001d] 2020-12-07 18:11:51.982 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : headers k accept-encoding, v [gzip, deflate, br] 2020-12-07 18:11:51.982 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : headers k accept-language, v [en-US,en;q=0.9] 2020-12-07 18:11:51.982 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : headers k cookie, v [pvisitor=ff1209b4-edb0-4246-b877-8e42fe356908; JSESSIONID=C8C338FA7AC3DA7F0A967492864939BF] 2020-12-07 18:11:51.983 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : parts 0 2020-12-07 18:11:51.983 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : fileNames: java.util.LinkedHashMap$LinkedKeyIterator@5f7cb675 2020-12-07 18:11:51.983 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : file: null 2020-12-07 18:11:51.983 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : file: null 2020-12-07 18:11:51.984 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : FilesController.uploadImage: calling imageService for user uuid-xxx 2020-12-07 18:11:51.984 DEBUG --- [nio-8443-exec-2] xxx.files.FilesController : imageService xxx.files.ImageService@5c93194d 2020-12-07 18:11:51.985 INFO --- [nio-8443-exec-2] xxx.files.ImageService : FilesService.saveImage: IN for uuid-xxx named null 2020-
在本地,那里有一个文件。
在我的 application.yml 中:
我不知道为什么在我的本地环境中接收到文件内容,但在生产环境中却没有。我无法想象 aws lightsail 会从 https 请求中剥离内容。在本地,我使用的是 http 而不是 https,不知道为什么这很重要。
有任何想法吗?提前感谢您提供的任何见解。
grails - 如何覆盖 grails 隐式日志变量
我有一个 grails 应用程序,我在控制器和服务文件夹中隐式获取日志变量。但是,我有自己的记录器,我想在整个应用程序中使用它。如何覆盖 grails 隐式日志变量?
groovy - 在 grails4 的 yml 文件中使用 $ 符号作为密码
我的数据库的密码类似于“abc_$123”或“abc$xyz”。我想保留 $ 作为密码的一部分。
但是 grails 4 将 $ 之后的字符解释为变量,如果我使用转义字符 /,它表示无效的转义字符。转义字符过去在 grails 3 中可以正常工作,但会导致 grails4 出现问题。
环境:开发:dataSources:dataSource:pooled:true dbCreate:无 url:“example” 用户名:“example” 密码:“abc_$123”
尝试了“abc_$123”、“abc_$123”、“abc_\$123”、“abc_$\\123”、abc_$123 等密码。它们似乎都没有帮助。要么我得到无效的转义字符错误,要么由以下原因引起:groovy.lang.MissingPropertyException:没有这样的属性:123 for class:SimpleTemplateScript1