问题标签 [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.
spring - Grails 4.0.1 - MessageSource 注入和使用方法获取消息给出空指针异常错误
我正在升级到 Grails 4.0.1,但我遇到了国际化问题。我不断收到NullPointerException
错误消息java.lang.NullPointerException: Cannot invoke method getMessage() on null object
。导致错误的代码行是:
当 Iprintln(messageSource)
时,值为空。我试过添加
到我的application.yml
,但我仍然得到同样的错误。我想问题可能是我的 bean 丢失了resources.groovy
,所以我将以下 messageSource bean 添加到resources.groovy
:
但是,这会产生以下错误org.grails.core.exceptions.GrailsConfigurationException: Error loading spring/resources.groovy file: No such property: grails for class: grails.spring.BeanBuilder
。
然后我决定尝试将 bean 放在一个resources.xml
文件中,而不是resources.groovy
.
但这也会产生一个NullPointerException
. 在搜索了互联网之后,我找到了一个资源,它通过在里面初始化 messageSource 来提出解决方法,bootstrap.groovy
所以我在其中添加了以下内容:
这会产生相同的NullPointerException
错误。
这在我升级之前工作正常。如果我println(messageSource)
从内部bootstrap.groovy
,程序打印基本名称数组。但是,println(messageSource)
在注入消息源后在我的控制器中执行打印“null”。也许我在升级过程中遗漏了一些东西,但我不确定它是什么。有没有人知道我为什么会收到错误以及我可以采取哪些步骤来修复它?
grails - 从 grails 3 升级到 4 的静态资源问题
我们编写了一个自定义 jar,它实现了 swagger 使用的 OpenApi 标准的有限版本。这个 jar 使用 ASTTransformer 实现在项目构建时生成 json 文件,并将生成的文件添加到build/resources/main/public
项目的目录中。
我们将这个 jar 添加到我们的 Grails 3 项目中,并将以下内容添加到我们的application.yml
通过此设置,我们可以导航到http://server/projectRoot/openapi_v2.json
应用程序并返回静态文件。
我们现在正在将项目迁移到 Grails 4。执行项目的构建,json
文件仍在生成到相同的构建目录,但是 url 不再返回文件。
我试图研究 Grails 3 和 Grails 4 之间在 application.yml 配置方面是否有任何变化,或者是否需要额外的东西。
我们确实在https://docs.grails.org/latest/guide/upgrading.htmlsourceResources
上找到了关于可能添加到bootRun
中的注释build.gradle
,但这似乎并没有修复它。
所以我的问题是,有谁知道是什么导致 Grails 4 无法正确映射到 Grails 3 能够映射到的公共静态资源?
gradle - Grails 4 新插件无法解决 gradle 依赖项
此处的示例项目:https ://github.com/Trebla7th/grails4-plugin-test
考虑将一些应用程序和插件升级到 grails 4. 从一个新项目开始只是为了感受它,使用“开箱即用”的 grails 插件无法编译。
毕业 5.1.1
尝试编译给出
运行 'gradle dependencies --stacktrace' 给出以下信息
这个项目是使用“create-plugin”创建的,然后除了一些代理配置之外没有任何变化,以获取要下载的依赖项。难道我做错了什么?
gradle - 如何阻止 gradle 升级传递依赖项?
为什么 Gradle 将我的库的传递依赖更改为更新版本?我如何让它停止?
细节
我正在为我的公司开发一个使用 Spring Security 的内部插件库。该插件显式声明了对最新版本 Spring Security 4 的依赖:
当我在客户端项目中包含插件时,Gradle 正在将我从 spring security 4 升级到 5,这会破坏插件。
这是客户端项目中dependencyInsight的输出:
在我看来,在所有情况下,我都在我的配置中请求 spring security 4。我究竟做错了什么?
我正在使用 Gradle 5.1.1。
更新
作为一种解决方法,可以让客户端应用程序使用特定版本声明对 Spring Security 的直接依赖。如果可能的话,我会尽量避免这种情况。
更新 2
输出gradlew dependencyInsight --dependency org.springframework.security:spring-security-web
:
更新 3
buildEnvironment 通过 grails 包括以下内容:
grails - Micronaut ReadTimeoutException
我有一个提供 REST API 的 Grails 4 应用程序。其中一个端点有时会失败,但会出现以下异常:
端点使用 micronaut http 客户端调用其他系统。远程系统需要很长时间才能响应,导致 ReadTimeOutException。
这是调用远程服务的代码:
我尝试在我的 application.yml 中使用以下配置解决它:
和
...没有成功。尽管我进行了配置,但在调用端点后 10 秒左右仍会发生超时。
如何更改 http rest 客户端的读取超时持续时间?
grails - Grails 域的常用 beforeUpdate 方法
我正在尝试beforeUpdate
通过写入来使用通用方法BootStrap.groovy
。
但我不能使用this.getdirtyPropertyNames()
,因为它给出了一个错误。
groovy.lang.MissingMethodException:没有方法签名:
如果它在域本身中,则this.getDirtyPropertyNames()
可以正常工作。我也尝试过使用domainClass.getDirtyPropertyNames()
,但它仍然给出错误。
我正在使用 Grails 4。
spring - Micronaut 声明式 REST 客户端抛出错误 - @Introduction 方法拦截器丢失
当我为我的 Micronaut 声明式客户端自动装配客户端接口时,我收到此错误:
修复它的正确方法是什么?
细节
我有一个已建立的 Grails 应用程序,我最近从 3.x 升级到了 4.0.1。
这个应用程序有一个服务可以并行执行多个 REST 调用,我正在尝试添加一个使用新的 Micronaut HTTP 声明式客户端的新 REST 调用。
我将客户端库添加dependencies
到build.gradle
:
我的客户端界面如下所示(在 中src/main/groovy
):
我在以下位置配置了 URL application.yml
:
关于的消息@Introduction
让我认为 Micronaut 没有执行编译声明式客户端的过程。有没有一些
我还缺少什么?
更新:
我尝试将build.gradle
依赖项更改implementation
为 Micronaut 文档中compile
所示的,而不是 Grails 文档中所示的 。没有骰子。
更新 2:
我发现HttpClientIntroductionAdvice
在启动期间从未调用过构造函数。我不知道为什么它没有包含在我的项目中。IntelliJ 显示micronaut-http-client:1.1.4
在外部库中,并且设置为compile
范围。
spring-boot - 如何在 micronaut 客户端 @Header 中使用 Grails 环境设置?
我的 Grails 中有一个特定于环境的标头属性application.yml
,配置如下:
如何@Header
在 micronaut HTTP 声明式客户端中使用此设置?
我试过这个:
但我收到了这个错误:
此外,并非所有环境都需要此标头(在这种情况下,它将设置为空字符串)。@Header 会处理这个吗?还是我需要做一些不同的事情?