问题标签 [grails-2.1]

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

grails - Groovy AST 转换不会在 Grails 编译期间应用,仅在自动重新加载期间应用

我编写了一个 Groovy AST 转换,它仅在 Grails 自动重新加载要应用的类时为我运行。如果我清理项目并使用 run-app 启动应用程序,则 AST 转换不会运行。触摸类以便 grails 自动重新加载会导致转换运行。

注释和 ASTTransformation 实现是 groovy 类,位于我的 Grails 应用程序的 src/groovy 目录中。注释用于域类,在域目录中以 groovy 编写。

这是否可能是由 groovy 文件的编译顺序或类加载器加载它们时引起的?如果是这样,我如何确保在域类之前编译/加载我的 ast 转换?

注释:

ASTTransforamtion 实现:

Grails 版本是 2.1.0。

0 投票
1 回答
420 浏览

grails-2.1 - Grails 2.1 如何在连接表中添加值

我创建了 2 个表,一个类别和一个制造商,并且关系是多对多的,所以我使用连接表,我将值分别插入到两个表中。现在我想通过他们的 id 加入两个表,但我做不到,你能帮帮我吗....当我尝试在连接表中插入值时给出异常,这里是异常:

这是我的类别域类

这是我的制造商域类

在我尝试插入的地方添加我的控制器

0 投票
1 回答
250 浏览

testing - 在集成测试中注入服务的问题

我有一个类似的问题,即使用以下代码进行集成测试 Grails 服务:

执行测试时,myService 始终为空。为什么 myService 没有被注入?我正在使用 grails 2.1

按照 Burt Beckwith 的指示更新(2/6/2013):

现在 documentosService 也为空。

0 投票
1 回答
419 浏览

unit-testing - 集成和单元测试之间的 Grails 污染

我知道关于这个特定主题有很多内容,但是我找不到任何偶然发现我的问题的人,希望有人可以向我解释这一点。

我有一个域,我在 equals 方法中使用注入的 grailsApplication 的动态方法“isDomainClass”:

这很好用,并且要对此进行单元测试:

当我使用 test-app -unit (在命令行或 STS 中)运行它时,它通过就好了。

然后我进行了一个使用该域的集成测试(这次没有模拟),并且在使用 test-app -integration 运行时再次运行良好(在命令行或在 STS 中)

但是,如果我运行“test-app”,那么它同时运行,我得到一个MissingMethodException: no method signature isDomainClass exists with parameters (java.lang.Class) ...和所有的爵士乐。

在我正在测试的服务中使用 's 进行调查时,println在测试的集成部分中,在调用我的域类的 equals 方法之前,我可以很高兴地调用grailsApplication.isDomainClass()并获得所需的效果。但是,当代码进入域的 equals 函数时,该isDomainClass()方法不再存在,尽管该grailsApplication对象引用了服务中引用的同一对象并且具有动态添加的方法。

看来,grails 添加到此类的动态方法在域的方法中调用时并未被注入,而是在服务中被注入。更奇怪的是,只有在集成测试遵循单元测试时才会发生这种情况。如果分开做,没问题...

这种污染从何而来?有什么办法可以解决吗?

PS 使用 Grails 2.1.0

0 投票
1 回答
725 浏览

grails - Grails GORM,多层领域类的急切获取模式

我有以下域结构:

我已经修改Bootstrap.groovy为在启动时初始化一些数据,并单独调用Survey.list()Question.list()Response.list()显示每个单独的级别都是使用预期值创建的

但是,当我这样做Survey.list()并深入研究问题时,响应始终为空,如下所示:

在此处输入图像描述

我期望通过将fetchMode设置为渴望它应该始终加载该特定对象。

我可以对我的域对象进行哪些更改,以确保在执行类似操作Survey.findById(1)时加载所有问题和响应?

谢谢

0 投票
2 回答
1165 浏览

grails - 缺少依赖项 - Grails

我收到这样的错误

我正在使用 Grials 2.1.4 添加插件后 cache-1.0.1 cache-hearders -1.5.1 我遇到了上述错误。

在 Grails 文档中,它说这些也将支持 Grails 2.1。Grails 版本:1.2 > * -- 我理解这个意思是,它也支持到 2.1.4。请参考:http ://grails.org/plugins/search?q=cache-headers

但我做了一个示例 Grails(2.1.4) 应用程序并添加了相同的插件。它运行良好。

我的示例应用程序:

谢谢

0 投票
3 回答
25270 浏览

grails - groovy.lang.MissingPropertyException:没有这样的属性:类的configClass:java.lang.String

我正在尝试使用grails run-app命令运行我的 grails 项目,但出现以下错误:

我已尝试解决如下所述的问题:

  • 试过grails clean
  • 删除了 GROOVY_HOME(因为 grails 提供了 groovy 本身,我正在从命令行运行应用程序)
  • 手动清理 %USER_HOME%.grails 目录

但是上述方法都没有解决问题。

java -version返回以下内容:

grails -version返回以下内容:

新的堆栈跟踪日志:

提前致谢。

0 投票
1 回答
1092 浏览

hibernate - 使用 grials run-app 运行 Grails 2.1.1 应用程序时出现未知错误

在使用 grails run-app 命令运行 Grails 2.1.1 应用程序时,我收到 Hibernate 错误,无法创建所需的 bean。

错误的堆栈跟踪如下:

加载 Grails 2.1.1 | 配置类路径。| 环境设置为开发..... | 打包 Grails 应用程序.... | 编译1个源文件| 编译1个源文件..... | 运行 Grails 应用程序 配置 Spring Security UI ... ... 完成配置 Spring Security UI 配置 Spring Security Core ... ... 完成配置 Spring Security Core 配置 Spring Security ACL ... ... 完成配置 Spring Security ACL 配置 Spring安全推特……配置完毕 Spring Security Twitter

| 错误 2013-08-30 16:24:31,120 [localhost-startStop-1] 错误 context.GrailsContextLoader - 执行引导程序时出错:创建名为“transactionManagerPostProcessor”的 bean 时出错:bean 初始化失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“transactionManager”的 bean 时出错:设置 bean 属性“sessionFactory”时无法解析对 bean“sessionFactory”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名称为“sessionFactory”的 bean 时出错:设置 bean 属性“hibernateProperties”时无法解析对 bean“hibernateProperties”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“hibernateProperties”的bean时出错:使用键[hibernate.dialect]设置bean属性“properties”时无法解析对bean“dialectDetector”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“dialectDetector”的 bean 时出错:调用 init 方法失败;嵌套异常是 org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException: 无法确定数据库名称 [H2] 的 Hibernate 方言!

消息:创建名为“transactionManagerPostProcessor”的 bean 时出错:bean 初始化失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“transactionManager”的 bean 时出错:设置 bean 属性“sessionFactory”时无法解析对 bean“sessionFactory”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名称为“sessionFactory”的 bean 时出错:设置 bean 属性“hibernateProperties”时无法解析对 bean“hibernateProperties”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“hibernateProperties”的 bean 时出错:无法解析对 bean“dialectDetector”的引用 同时使用键 [hibernate.dialect] 设置 bean 属性“属性”;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名称为“dialectDetector”的 bean 时出错:调用 init 方法失败;嵌套异常是 org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException:无法确定数据库名称 [H2] 的 Hibernate 方言! 线 | 方法->> 334 | innerRun in java.util.concurrent.FutureTask$Sync - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 166 | 在 java.util.concurrent.FutureTask 中运行 | 第1145章 java.util.concurrent.ThreadPoolExecutor 中的runWorker | 615 | 在 java.util.concurrent.ThreadPoolExecutor$Worker 中运行 ^ 724 | 跑 。. . 在由 BeanCreationException 引起的 java.lang.Thread 中:创建名为“transactionManager”的 bean 时出错:在设置 bean 属性“sessionFactory”时无法解析对 bean“sessionFactory”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“sessionFactory”的 bean 时出错:无法解析对 bean 的引用 hibernateProperties' 同时设置 bean 属性 'hibernateProperties'; 嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“hibernateProperties”的 bean 时出错:使用键 [hibernate.dialect] 设置 bean 属性“properties”时无法解析对 bean“dialectDetector”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“dialectDetector”的 bean 时出错:调用 init 方法失败;嵌套异常是 org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException:无法确定数据库名称 [H2] 的 Hibernate 方言!BeanCreationException:创建名为“hibernateProperties”的bean时出错:使用键[hibernate.dialect]设置bean属性“properties”时无法解析对bean“dialectDetector”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“dialectDetector”的 bean 时出错:调用 init 方法失败;嵌套异常是 org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException:无法确定数据库名称 [H2] 的 Hibernate 方言!BeanCreationException:创建名为“hibernateProperties”的bean时出错:使用键[hibernate.dialect]设置bean属性“properties”时无法解析对bean“dialectDetector”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“dialectDetector”的 bean 时出错:调用 init 方法失败;嵌套异常是 org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException:无法确定数据库名称 [H2] 的 Hibernate 方言!BeanCreationException:创建名为“dialectDetector”的 bean 时出错:调用 init 方法失败;嵌套异常是 org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException:无法确定数据库名称 [H2] 的 Hibernate 方言!BeanCreationException:创建名为“dialectDetector”的 bean 时出错:调用 init 方法失败;嵌套异常是 org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException:无法确定数据库名称 [H2] 的 Hibernate 方言!

由 BeanCreationException 引起:创建名为“sessionFactory”的 bean 时出错:设置 bean 属性“hibernateProperties”时无法解析对 bean“hibernateProperties”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“hibernateProperties”的 bean 时出错:使用键 [hibernate.dialect] 设置 bean 属性“properties”时无法解析对 bean“dialectDetector”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“dialectDetector”的 bean 时出错:调用 init 方法失败;嵌套异常是 org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException:无法确定数据库名称 [H2] 的 Hibernate 方言!

我的DataBaseConfig .groovy 的设置如下:

非常感谢早期的回应。

谢谢

0 投票
2 回答
312 浏览

maven - 异常发生在测试用例的末尾

我正在使用 Maven 进行依赖管理。当我运行测试用例时,尽管测试用例成功通过,但在测试用例结束时会发生异常。

以下是我的堆栈跟踪:

我正在使用 Grails 2.1.3。我已经尝试过“静态”和“动态”脚手架,但它并没有解决问题。

我还提到了这个异常是什么意思?问题,但没有运气。

0 投票
1 回答
449 浏览

grails - flash.message 不在 grails 2.x 的屏幕上打印消息

我的功能是我有一个用户列表。当我点击任何用户编辑他的信息时,会弹出一个新窗口。我更改了一些值并单击保存。现在值已正确保存,但未显示“保存成功”消息。

我的控制器代码是

在 gsp 中我打印这样的消息

这里 Call 没有进入 g:if 条件,因此没有打印消息。这在 grails 1.3 中运行良好,但在 2.2 中失败。为什么呢?