问题标签 [grails-3.3.x]

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.

0 投票
3 回答
378 浏览

grails - 包含带有 g:include 的布尔参数作为字符串传递给包含的视图

我不知道以下更改是一个问题还是有意的。

然后 line.gsp aways 中的表达式计算为 true,因为“progress”参数的类型是字符串,而不是布尔值。

请注意,这同样适用于其他类型,而不仅仅是布尔值。我正在使用 grails 3.3.8 这在 grails 2.5.2 中没有发生。

我在网上没有找到任何关于此的信息,所以我在这里问。谢谢。

编辑:

正如丹尼尔所建议的,我也尝试过使用 grails 3.3.2。我刚刚使用 grails create-app 创建了一个应用程序,并修改了现有的 index.gsp 以包含 line.gsp,如上面的代码所示。

这是一个屏幕截图: 在此处输入图像描述

0 投票
3 回答
455 浏览

java - Grails 3:单元测试拦截器:不会在拦截器中停止

出于演示目的,我使用以下文件设置了一个全新的 grails 应用程序:

当我到达http://localhost:8080/hallo时,“halloechen”被打印出来,因为它被设置为拦截器before()方法中的请求属性,就像我想要的那样。现在我想对拦截器进行单元测试:

此测试失败,因为该heading属性未设置为请求(无论如何这是一个模拟请求)。事实上,在运行单元测试时,拦截器似乎甚至没有被调用。我在before()方法中设置了一个断点,在调试测试时我从来没有到达那里。这很奇怪,因为我希望拦截器测试至少调用拦截器。我知道我可以按照这里的描述重写测试,但我的意思是拦截器根本不会被调用。那正确吗?另一件事:getModel()在测试中调用总是返回null。如何在我的测试中获得模型?

0 投票
1 回答
125 浏览

grails - Grails 3.3.9:转发复制参数

我们正在从 Grails 2.x 迁移到 3.x。使用 forward 函数时,我可以观察到一些不同的行为:

当调用http://localhost:8080/foo?test=1并在方法中停止时,bar()我可以看到params如下所示:

如您所见, 的值test被保存为String[]. 这种行为与 Grails 2.5.6 中的行为不同。有没有办法为 Grailsforward函数设置一个标志,以便不将参数传递给重定向控制器?

0 投票
0 回答
66 浏览

grails - 使用 grails 3.3 在命令对象中使用共享约束

我在将旧单元测试从 grails 2.5.4 迁移到 grails 3.3 时遇到问题

我有很多使用共享首选项的命令。一个例子,de UserController里面的UserCommand:

在 application.groovy 我以这种方式定义了约束:

我也将User域定义为:

写一个我做的测试:

它按预期工作。但是当我这样做时:

它抛出一个异常。

我以为我在 application.groovy 文件中犯了一个错误,但共享约束适用于域..

这是一个具有相同问题的示例项目:https ://github.com/almejo/commandtest

有什么想法吗?

0 投票
1 回答
130 浏览

spring-security - 创建名为“securityTagLib”的 bean 时出错-(grails-spring-security-saml 插件)

我们目前正在使用 PingFederate 和 SAML 实施 SSO。在这个过程中,我们也从 Grails 2.4.4 升级到 Grails 3.3.9。

我们在开发工作时没有任何问题,但是在 tomcat 上部署我们项目的 war 文件时,我们似乎在 SAML 插件和 spring-security-core 之间遇到了某种冲突,特别是在堆栈跟踪中看到的 SamlTagLib 和 SecurityTagLib以下。

如果没有 saml 插件,则不会发生此问题。

如果有人能提供有关为什么会发生这种情况和/或解决此问题的任何信息,我们将不胜感激。

我们的构建文件具有以下依赖项;

堆栈跟踪:

0 投票
1 回答
122 浏览

mysql - 连接关闭错误后不允许操作的原因?

我正在使用 grails 3.3.9 构建一个示例 hello 应用程序。部署应用程序后,它可以正常工作。当我在一天左右后检查时,应用程序已经崩溃了。检查日志,我看到一个错误“连接关闭后不允许操作。”。看起来在某些时候mysql数据库连接断开了。

在此处输入图像描述

在此处输入图像描述

这是我在 application.yml 中使用的数据库配置

在此处输入图像描述

我很欣赏任何关于为什么在一段时间后自动关闭与数据库的连接的见解。我该如何预防?感谢您的反馈。

0 投票
1 回答
62 浏览

grails - 如何在 grails 3.3.11 中深度克隆域对象?

我正在尝试deep clone我的域对象。它有大约 10 个一对一的映射,而且还有更多。

我尝试了以下代码段:

但是prop.isAssociation没有找到。有谁知道如何检查关联grails 3.3.11。这曾经在1.3.7版本中工作。

0 投票
1 回答
319 浏览

spring - 方法不允许 405,在 grails 从 2.5.2 升级到 3.3.11 后点击 POST 请求

将 grails 2.5.2 升级到 3.3.11 后,我在点击 POST 请求时收到 Method Not Allowed 响应。GET 方法工作正常。

控制器:

网址映射:

请求:[POST] localhost:5555/OMApi/phase

回复:

对于 grails 2.5.2,一切正常。它看起来像一个与 Spring 相关的问题。关于这个问题的所有搜索都没有结果。任何想法?是由于 UrlMapping 中的一些错误还是 CORS 拦截器无法正常工作等其他问题?

0 投票
0 回答
73 浏览

gradle - 在应用程序重启时调用自己的 API(Grails 3.3.9)(Tomcat 重启)

在构建 grails 3.3.9 应用程序时,我遇到了一个场景,我需要在应用程序重新启动时调用它自己的 API(出于特定目的)。我只要我知道我们不能通过 boostrap.groovy 进行 API 调用,所以我找到了可以进行自己的 API 调用的 Application.main 方法的替代选项。但这仅适用于 Grails - 运行模式。我需要让它在 Grails 上运行 - 战争模式 - 因为一旦在 QC 中验证,我必须在生产环境中部署战争。

我可以设置 cron 来执行此操作,但我正在寻找 grails 内置功能。

其他信息:Grails:3.3.9 Gradle:4.10.3 Tomcat 8.5.50

0 投票
1 回答
57 浏览

grails - Grails 3.3.2 Spring Security CAS 不能通过负载均衡器工作,但可以通过部署在其上的内部服务器正常工作

我们有一个使用 Spring Security Core 和 Spring Security CAS 插件的 Grails 3.3.2 应用程序。使用自定义 userDetailsS​​ervice 类从 Oracle 数据库中获取用户信息。当点击部署应用程序实例的 tomcat 服务器的内部 URL 时,此应用程序通过 CAS 登录很好,但是当我们尝试通过负载均衡器访问应用程序时,我们会遇到重定向循环和错误。

这是设置。我们有两个实例;一个配置为直接在应用服务器上访问,另一个通过充当反向代理的负载均衡器访问。直接在服务器上访问一个工作正常(重定向到 CAS,您登录,CAS 重定向回来,然后您就进入了)。通过负载均衡器重定向到 CAS,您登录,CAS 将您重定向回来,凭证被正确传递,但随后 Groovy 中的某些东西将其匿名化,您得到拒绝访问,然后返回 CAS。但是 CAS 票是有效的,所以 CAS 把你送回去,然后循环往复。在浏览器确定存在错误并停止它之前,它会重复 5 或 6 次。

将日志记录设置为调试,我们可以看到哪里出了问题,但无法弄清楚原因。

当它仅在内部服务器上用于我们的应用程序实例时,我们的自定义 userDetailsS​​ervice 被用作主体而不是grails.anonymous.user

谁能告诉我为什么在一个实例中 SecurityContextHolder 从我们的 userDetailsS​​ervice 获取主体并且 CAS 工作正常,而在负载均衡器后面的另一个实例中,SecurityContextHolder 正在获取 'grails.plugin.springsecurity.authentication.GrailsAnonymousAuthenticationToken@dc4d198: Principal: org .springframework.security.core.userdetails.User@dc730200:用户名:grails.anonymous.user

谢谢你,迈克