问题标签 [grails-2.5]

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 回答
901 浏览

pdf - grails 无法使用渲染插件生成 PDF

我正在尝试使用渲染插件将 html 文件渲染为 pdf,我的控制器方法是,

我的 _download.gsp 文件是,

我在 BuildConfig.groovy 文件中添加了以下依赖项

我收到了以下堆栈跟踪,

注意更新:相同的代码库适用于 grails 版本 2.2.4,问题仅在 grails 版本 2.5.0 中出现

0 投票
1 回答
170 浏览

grails - 带有可搜索插件的 grails app 独立应用程序抛出 NoClassDefFoundError

我正在尝试使用 grails独立应用程序运行器插件(v.1.3) 构建一个独立的 grails (v.2.5.0) 应用程序。使用 run-app 和 run-war 一切正常,我还可以将 WAR 文件部署到 tomcat 7 实例而不会出现任何问题。但是,如果我使用 grails build-standalone 构建独立 JAR,由于以下 ClassNotFoundException,我无法启动 JAR:

为了证明这个问题是可重现的,我在 github 上准备了一个最小的例子:

https://github.com/mlist/grails-standalone-search-bug

我在以下位置创建了一个错误报告: https ://jira.grails.org/browse/GPSTANDALONE-22

我已经尝试从默认的 tomcat 8 切换到 tomcat 7 和码头(结果相同)。我还尝试了 java 7 和 java 8,结果都一样。

0 投票
1 回答
243 浏览

grails - Grails 2.5 脚手架在绑定期间不会删除最后一个 hasMany

我创建了一个具有 2 个域的新 Grails 2.5.1 项目,并使用 generate-all 创建脚手架。其中一个域具有许多其他域:用户具有许多角色。当我运行该应用程序并创建一个新用户并为该用户选择一个角色时,它会添加它。我可以为一个用户添加多个角色,或者删除它们,除了最后一个。我不能删除最后一个。如果我尝试删除用户的所有角色,它会忽略它并保留之前选择的角色。(我在 Grails 2.4.4 中发现了相同的行为。)

域:

脚手架视图创建 html 选择框:

创建这个html:

重现:

  1. 运行应用程序
  2. 创建几个角色
  3. 创建新用户,输入名称,选择一个或多个角色,然后单击创建
  4. 编辑用户,取消选择角色,然后单击更新
  5. 请注意,之前的角色仍然被选中

我了解,如果未选择任何内容,则该字段的表单不会提交任何内容。user.roles.clear()我可以在绑定之前修复它。这行得通,但我想知道......

脚手架真的不是为处理这种情况而设计的吗?或者,我做错了什么,比如我的域编码方式?有没有比在绑定之前编辑脚手架以清除角色更好的解决方案?

0 投票
1 回答
604 浏览

grails - 在 grails 2.5.1 上安装本地插件

基于http://www.slideshare.net/kennethaliu/modularizing-your-grails-application-with-private-plugins-springone-2gx-2012上的幻灯片, 我正在尝试模块化我的应用程序。为此,我创建了一个名为 lms-core 的插件,并将其添加到与主应用程序的 grails-app 相同的目录中

为了添加依赖项,我在 buildconfig 中添加了以下代码

我已经尝试了在代码中显示和不使用破折号(-)的两种方式,但我仍然无法解决类编译错误。这些是移动到插件的类。我已经解决了以下问题而没有任何解决方案

如何在 Grails 2.0 中运行本地插件?

http://grails.1312388.n4.nabble.com/Insert-own-local-plugin-into-build-config-td4646704.html

0 投票
3 回答
1407 浏览

unit-testing - 如何在单元测试中模拟 springSecurityService

我正在对内部创建用户实例的 Grails 控制器方法进行单元测试。用户域类springSecurityService在将密码插入数据库之前使用 Spring Security 插件对密码进行编码。

有没有办法springSecurityService从我的单元测试中模拟它以消除该错误?

请在下面找到我的单元测试。

0 投票
1 回答
238 浏览

grails - grails 2.5.1 ignores Spock functional tests

I just migrated an application from grails 2.2.4 to grails 2.5.1. Now spock tests are not executed. The test directory looks as following:

Following behavior occurs:

does not run any test

runs all spock unit tests

does not run any tests

runs only JUnit functional tests

With grails 2.2.4 all test have been executed. I followed the migration guide provided at the grails homepage (removing spock-plugin etc.) Does anyone have an idea what the problem may be?

0 投票
1 回答
440 浏览

grails - 私有方法在 Grails 2.5.1 中没有被嘲笑

我们最近从 Grails 2.4.4 升级到 2.5.1 以及 JDK 8。从那以后,下面的测试用例一直失败。

在我们的服务类中,我们定义了一个私有方法来调用外部服务。

在我的 spock 测试中:

基本上在这里,私有方法没有被嘲笑,并且正在调用实际的服务,这导致我们的测试用例失败。有人有任何指针来模拟 Grails 2.5.1 中的私有方法吗?

0 投票
0 回答
105 浏览

grails - 当我在控制器中添加任何内容时出现错误

我在 Windows 7 64 位上使用 Grails 2.5.1,在使用 Grails 命令生成控制器和视图之后

当我在控制器中添加任何新行时,出现以下错误:

编译错误:启动失败:E:\Development\eclipse\TekDays\grails- app\controllers\com\tekdays\TekEventController.groovy:47:不明确的表达式可能是一个无参数的闭包表达式,一个孤立的开放代码块,或者它可能会继续前一条语句;解决方案:添加一个显式参数列表,例如 {it -> ...},或者通过给它一个标签来强制它被视为一个开放块,例如 L:{...},或者删除前一个换行符,或添加显式分号 ';' @ 第 47 行,第 4 列。{ ^ 1 错误

这是我的控制器:

有什么建议可以解决这个错误吗?谢谢

0 投票
1 回答
549 浏览

grails - 单元测试中 grails 服务属性的 NullPointerException

使用 grails 2.5.1,我只创建了一个具有通过构造函数初始化的简单属性的服务(@PostConstruct 也是)

任何通过服务方法读取此属性的单元测试都会获得 NullPointerException

以下是如何重现:

acme/DataService.groovy

acme/DataServiceSpec.groovy

运行测试....

输出 ...

日志显示属性初始化步骤和属性的 NullPointerException。

问题是:

  • 为什么“数据”属性变为 null ?
  • 有一个服务生命周期将属性设置为 null 吗?
  • 正在运行的测试是否使用与初始化实例不同的 DataService 实例?
0 投票
1 回答
251 浏览

grails - GORM - 暂时禁用 beforeInsert 事件

有办法暂时禁用特定域类的 beforeInsert 事件吗?我需要执行以下步骤:

  1. 禁用 beforeInsert 的执行;
  2. 在对象中执行一种 saveAs 例程;
  3. 重新启用 beforeInsert 的执行。

saveAs 例程在特定对象中执行深度克隆并创建具有相同数据的新对象。请参阅此答案以了解克隆:如何在 Grails 中复制域对象?

禁用 beforeInsert 的原因:由于对象是克隆的,所以在执行 saveAs 例程时不需要执行 beforeInsert 中的代码。

Grails 版本:2.5.0

更新

我忘了提到我想避免更改我的域类来实现这种行为。