问题标签 [grails3]

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 投票
1 回答
69 浏览

grails - 将 Grails 从 v3.0 升级到 v3.1 或 v3.2

我正在将应用程序从 Grails v2 升级到 v3 。我已经达到了它与 Grails 3.0.17 相当好的地步。我想将它升级到 v3.1 或 v3.2。但是在更改版本之后gradle.properties,这就是我在执行后得到的grails run-app

大约有 15 个这样的错误被打印出来。

这里有什么问题?我已经尝试clear了该项目并将 jdk 版本从 1.8 -> 1.7 更改。每次都是一样的结果。

0 投票
2 回答
222 浏览

grails - 在 Grails 3.2.6 中,异步控制器操作无法访问 SecurityContextHolder

这在 Grails 2 中不是问题,现在似乎只在 Grails 3 中出现。任何调用异步任务的控制器都无法在呈现视图时访问 SecurityContextHolder 以获取登录用户信息......

似乎在 SecurityContextPersistenceFilter 中, SecurityContextHolder.clearContext() 在 DispatcherServlet.processDispatchResult 能够呈现之前被调用,使得呈现代码无法访问存储在 SecurityContextHolder 中的登录用户信息:

起初我认为这个问题与安全上下文没有被传递到 Promise 的可运行文件(或类似的东西)有关,并且设置 springsecurity.sch.strategyName = "MODE_INHERITABLETHREADLOCAL" 无济于事。

以下是显示调试器的一些屏幕截图:

1) DispatcherServlet 中的这一行尚未执行。图像底部的 Watch 语句显示 .getAuthentication != null 返回 true

预处理执行

2) 在 SecurityContextPersistenceFilter 中清除 SecurityContextHolder 之前: 安全前上下文清除

3) 从 ha.handle 返回后,.getAuthentication() 现在为 null SecurityContextHolder 现在为空

4) getAuthentication() 现在在渲染视图/结果之前为空 在此处输入图像描述

为了澄清,我试图从自定义标记库中访问 springSecurityService.currentUser ,该标记库在布局中呈现我的页面标题。

因此,在 layout.gsp 类型文件中:

使用 renderHeader 定义,如:

0 投票
1 回答
539 浏览

unit-testing - grails单元测试中trait提供的覆盖方法

我有一个控制器,它使用 Grails Spring Security Core 插件提供的 isLoggedIn() 函数进行操作。我希望能够对这些操作进行单元测试,因此我需要一种模拟 isLoggedIn() 函数的方法,以便它始终返回 false。这种方法是由一个特征提供的,我相信这是我的问题的根源。

我已经尝试向元类添加一个新函数:

但是,这似乎不起作用;仍在调用原始方法。

关于如何实现这一点的任何建议?

0 投票
1 回答
20 浏览

java - 从 Grails2.x 迁移后,Grails3 java 代码不能包含在项目中

我有一个 Grails 项目在Grails 2.4.4. 我尝试将其迁移到Grails 3.2.4. 但是,我发现一个问题,当我尝试在 中导入一个 java 类时application.grooy,它说:
can't locate the class
我已经把所有的java代码放到了src/main/groovy.这个目录是由Grails创建的,供用户放置java代码。
我需要为它做任何配置吗?我在文档中找不到说明。

0 投票
1 回答
285 浏览

grails - grails 3 project plugin source code?

In grails 2 and earlier, plugins installed their source to .grails/<version>/projects/<projectName>/plugins/etc, this made it easy to debug plugins that were installed without having to check out and load the full source... find where problems were that could be hot-deployed. No need to install run the plugin locally.

In grails 3, this seems to be missing... or maybe I'm just missing something? Is there somewhere in my project I can directly modify the plugin source without checking out the plugin, compiling it and then installing it locally?

0 投票
1 回答
239 浏览

grails - 验证约束 importFrom 抛出异常

尝试从使用共享约束的域类导入约束时,我得到以下异常。绑定阶段出现异常

例外:

领域:

命令

堆栈跟踪:

有任何想法吗 ?

0 投票
0 回答
543 浏览

spring - Grails 3.2.4 grails-spring-websocket 2.3 错误

=== 更新 === (见下面的原始帖子)

虽然 zyro 发起的 bug 修复带来了一些改进,但错误仍然没有完全消失。它仍然看起来像这样:

所以实际上只有错误的第二部分消失了......

=== 原始帖子 ===

我在 Tomcat 8.0.28 catalina.out 日志中发现了很多错误。我猜这是由我使用的 websocket 插件引起的。我在如下服务类中进行了实现:

在客户端以下:

有没有人知道错误来自哪里以及如何处理它们?

提前感谢日志!

2017 年 3 月 2 日 13:15:33.349 INFO [MessageBroker-4] org.apache.coyote.AbstractProcessor.setErrorState 在非容器线程上处理时发生错误。连接将立即关闭 java.io.IOException: APR 错误: -32 at org.apache.coyote.http11.InternalAprOutputBuffer.writeToSocket(InternalAprOutputBuffer.java:291) at org.apache.coyote.http11.InternalAprOutputBuffer.writeToSocket(InternalAprOutputBuffer .java:244) 在 org.apache.coyote.http11.AbstractOutputBuffer.flush(AbstractOutputBuffer.java:305) 在 org.apache.coyote. http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:765) 在 org.apache.coyote.Response.action(Response.java:177) 在 org.apache.catalina。

错误 org.springframework.scheduling.support.TaskUtils$LoggingErrorHandler - 计划任务中发生意外错误。org.springframework.web.socket.sockjs.SockJsTransportFailureException: 无法写入 SockJsFrame 内容='h'; 嵌套异常是 o rg.apache.catalina.connector.ClientAbortException: java.io.IOException: APR 错误: -32 at org.springframework.web.socket.sockjs.transport.session.AbstractSockJsSession.writeFrame(AbstractSockJsSession.java:339)在 org.springframework.web.socket.sockjs.transport.session.AbstractSockJsSession.sendHeartbeat(AbstractSockJsSession.java:255) 在 org.springframework.web.socket.sockjs.transport.session.AbstractSockJsSession$HeartbeatTask.run(AbstractSockJsSession.java : 451) 在 org.springframework.scheduling.support.DelegatingErrorHandlingRunnable。

0 投票
0 回答
158 浏览

grails - Grails dropwizard-metrics 插件不会以正确的格式输出 Metrics 数据

我正在寻找 Grails 3.x 的 yammer-metrics 插件的替代品,并找到了相同的 Grails Dropwizard Metrics。

我试图将它与我的示例应用程序(在 Grails 3.x 中)集成并遵循以下文档: http: //grails-plugins.github.io/grails-dropwizard-metrics/snapshot/index.html#_healthcheck_beans

在博客之后,我在 build.gradle 中添加了以下依赖项,即

为了测试这一点,我用 index() 动作制作了 TestController,即

有了这个,运行应用程序并点击 /test/index 然后 /metrics,不再返回一个有效的 JSON,包含版本、gaugues、计数器、计时器标签等(如在http://grails-plugins.github.io中看到的/grails-dropwizard-metrics/snapshot/index.html#_exposing_metrics_data )

相反,它只是以这种格式返回 JSON:

在我的示例应用程序中,我也尝试在 resources.groovy 中注册 MetricRegistry bean,如下所示:

豆子 = { metricRegistry(MetricRegistry) }

但输出 JSON 仍然是相同的。

请让我缺少什么。提前致谢!

0 投票
2 回答
954 浏览

grails - 在 grails 3 应用程序中使用 spring webflow

我一直在尝试将我的一些 grails 2 代码移植到 grails 3。这个特定的代码使用 grails-webflow 插件(直到 grails 2.x 才被支持;它现在被破坏了,因为 grails 核心中的一些大修)。

所以我决定在我的应用程序中直接使用spring webflow。我已经能够做基本的管道。那就是我已经为 webflow 设置 * 应用程序上下文 * 创建了流工厂,并且所有 * 都编写了流 xml。* 创建了其他必要的 bean。

现在,当我点击映射到我的流程的 url 时,我可以看到我的 .gsp 页面正在呈现。但问题是,它没有解决布局。页面即将到来,没有任何样式/布局。我错过了什么?

这是我的gsp page

这就是我为 webflow 完成管道的方式。

这是来自的相关部分resource.groovy

问题是为什么我的布局没有被渲染?我错过了什么?

0 投票
2 回答
1153 浏览

grails - 如何测试从 HTTP 会话中检索信息的 Grails 服务

我正在尝试为 Grails 网络插件编写测试。该插件包含一个服务 (UtilityService),该服务具有一个名为 getSession() 的函数,该函数返回 GrailsHttpSession。其他服务使用它来读取/写入会话中的值。代码工作得很好,但是当我尝试为使用返回的会话对象的任何函数编写测试时,测试失败。

在这一点上,我的目标是简单地编写一个测试来证明 utilityService.getSession() 正在返回一些东西。

我目前正在使用 Grails 3.2.7

实用服务:

测试:

测试输出:

问题: 我需要做些什么才能使会话在 TEST 环境中可用?是否可以在单元测试中执行此操作,还是必须是集成测试?