问题标签 [grails-3.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 投票
1 回答
564 浏览

grails - Jenkins 的 Grails 3.1.2 项目:未知的命令行选项“-n”

我复制粘贴了 jenkins 作业(适用于 Grails 2.4.5),但在新的 Grails 3.1.2 项目中失败:

如果我运行./gradlew clean./gradlew war在本地环境中运行,它会完美运行。詹金斯如何运行它?

0 投票
1 回答
182 浏览

grails-2.5 - 无法使用 Grails 3.1.3 或 Grails 2.5.4 创建 hello world 程序

我的项目基于 Grails 2.2.2。现在我需要升级到 Grails 2.5.4 才能升级 Groovy 版本 2.4.4

因此,我下载了 Grails 2.5.4 并在环境变量中设置了 Grails Home,在类路径中设置了 bin 文件夹。

从命令行我可以看到 grails -version 是 Grails 2.5.4

接下来,我创建了 grails create-app helloworld。它已成功创建。

进入helloworldcd项目并尝试运行 grails run-app。

在此之后,在命令行上我可以看到配置类路径大约 10-15 分钟,最终我得到错误tomcat:7.0.55.3 not found。在 grails 2.5.4 目录中,我看到了 tomcat 版本 7.0.55.2 所以BuildConfig.groovy我将 tomcat 更改为版本 7.0.55.2 。并再次运行 grails run-app 这次插件已安装。

接下来我得到了错误

我很惊讶这些在 Grails 2.5.4 的插件文件夹中,但它仍然抱怨。

我添加了 maven repo 到

但这没有用。

我手动复制了这个并再次运行 run-app 然后我得到了与缓存和资产管道相关的依赖项错误。

我对此进行了注释并执行了 run-app 。接下来我得到了找不到 catalina 库的错误。然后我复制了与 tomcat 相关的库,但仍然无法运行 hello world 项目。我收到错误 Spring parserContext class not found。

早些时候,当我在 Grails 2.2.2 上工作时,我没有遇到这样的问题,并且能够立即创建和运行 helloworld 项目。

现在有了 Grails 2.5.4 和 Grails 3.1.3,我真的很沮丧。我什至尝试过 Grails 2.4.4 和 Grails 3.0.3。

任何人都可以指导我如何使用 Grails 版本 2.5.4 或 Grails 3.1.3 创建和运行 helloworld grails 项目。我也准备尝试使用具有 Groovy 2.4.4 的旧 Grails 版本。

0 投票
2 回答
156 浏览

grails - 运行控制器单元测试在 IntelliJ 中有效,但不使用 grails test-app

我正面临一个小挑战,我不知道如何解决它。在我当前的应用程序中,我们使用 RabbitMQ 作为 AMQP 代理(使用​<strong>spring-rabbit​),并且我们成功编写了集成测试,其中 RabbitMQ ConnectionFactory 自动连接等。

现在我们还有一些针对小型控制器的单元测试,当我使用命令行运行它们时会出现错误 grails test-app

org.springframework.beans.factory.BeanCreationException:创建名为“rabbitMQConfig”的bean时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有 org.springframework.amqp.rabbit.connection.ConnectionFactory rabbitmq.config.RabbitMQConfig.connectionFactory;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type of [org.springframework.amqp.rabbit.connection.ConnectionFactory] ​​found for dependency: 预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注解:{@org.springframework.beans.factory.annotation.Autowired(required=true)}

当我在 IntelliJ 中运行单元测试时一切正常

所以我想知道在 IntelliJ 和 Grails 命令行中运行测试之间有什么区别。我想这与 Grails 运行测试的环境有关。但我们还连接了 RabbitMQTestConfig,以便集成测试与测试配置一起工作。

我对为什么这在 IntelliJ 中而不是在命令行中起作用感到有点困惑。有什么线索吗?

0 投票
1 回答
2582 浏览

grails - 为 Log4j2 配置 Grails 3

我们想使用 Log4j2 作为与 grails 3 的日志绑定。

据我目前所知。我们有许多使用各种记录器的从属依赖项,因此我们需要使用 SLF4J API。然后,我们不需要让 grails / groovy / spring 将 SLF4J API 重新定向到 Logback 绑定,而是需要将每个 API 重新定向到 Log4j2 绑定。

由于 grails 3 使用 Logback 绑定,我计划遍历 build.gradle 中的每个依赖项,排除 Logback 绑定,并包含 Log4j2 绑定。这行得通吗?更新:是的

我们是否还需要将 Log4j2 API 桥接到 SLF4j API?我们需要什么依赖?更新:见下文。

最后,我假设我们需要放弃 grails 3 logback.groovy 配置,只需将其中一个 log4j2 配置放在 src/main/resources 中。更新:是的

当我们弄清楚这一点时,我会发布更新,但我敢打赌以前有人这样做过。

2016 年 3 月 18 日更新:

事实证明这是非常直接的。我在我的 grails 3 项目上做了一个“./gradlew 依赖项”,以查看哪些依赖项正在拉入 Logback 绑定/实现(组:'ch.qos.logback',模块:'logback-classic')

首先,这是通过“grails create-app testit”命令生成的默认 build.gradle:

依赖项报告显示它们被两个依赖项拉入:

因此,我只需要对 build.gradle 的依赖项部分进行一些更改:

在 src/main/resources 中,我们添加了一个 log4j2.xml。

在 groovy 代码中,我们使用了:

我们还将 ThreadContext 语句放在频繁使用的类的构造函数中。

就是这样。现在我们正在做快速的异步日志记录,在配置更改时不会丢失任何日志消息。

0 投票
1 回答
1343 浏览

grails - Grails 3 Quartz 插件:作业无法启动

我正在尝试在 Grails 中做一个简单的后台工作。我只希望每 30 秒左右发生一次。

我正在使用 Grails 3.1.3

我已将 Quartz 添加到我的依赖项中: compile "org.grails.plugins:quartz:2.0.1"

然后我运行了编译并重新启动了 grails CLI。现在我通过 create-job 创建了一个 Job。它看起来像这样:

当我通过 run-app 启动服务器时没有任何反应。没有打印,也没有错误。我究竟做错了什么?

0 投票
1 回答
1797 浏览

grails - Grails 3:集成测试在开发环境中运行,而不是在测试环境中

我已经分离了dataSourceConfig.yml数据库配置文件:

我将其连接到以下项目Application.java

当我通过 Intellij IDEA 15 运行集成测试时,它会在开发环境中运行测试,但 YAML 配置文件有测试部分。

有谁知道如何解决这个问题?下面的命令没有帮助。

0 投票
1 回答
103 浏览

grails - Grails 3 app is 404 in JBoss EAP 6

If I create a new web profile app, and generate-all, it runs fine in my local and deploys without error to JBoss. But when I try to access the app all URLs return 404. I know the app started up successfully, because it created tables in the database.

Here's what I'm doing.

  1. grails 3.1.4> create-app demo
  2. create-domain-class Book
  3. create-domain-class Author
  4. Edit domain classes
  5. generate-all *
  6. change tomcat dependency from compile to provided in build.gradle
  7. change dataSource in application.yml to use my JNDI Oracle connection
  8. Add server: contextPath: /demo to application.yml
  9. run-app -> Works
  10. gradle war
  11. Deploy to JBoss EAP 6.4.0.GA

JBoss says deployment and activation of the app was successful. There are no errors of any sort in any JBoss log file. And dbCreate: update made the DDL changes to my Oracle database, so I know it got that far. But all URLs for the app return 404.

0 投票
1 回答
466 浏览

spring - 我可以在域对象构造函数中调用 grails 服务吗?

Grails 版本:3.1.2

我有一个版本控制服务 (VersionService),每当我创建域对象 (VersionedDomainClass) 的新实例时,我都想调用它。我希望 VersionedDomainClass 处理调用服务,但是当我尝试这样做时:

构造函数在启动期间被调用,此时 versionService 仍然为空,所以我得到一个 NPE:

我不需要在启动时实例化任何 VersionedDomainClass;看起来 Spring 正在尝试创建它自己的域类实例,也许?在创建服务 bean 之前,有什么方法可以阻止 Spring 这样做?

0 投票
3 回答
681 浏览

grails - Grails 3 fontawesome 设置

我正在尝试在我的 grails 3 项目中包含 fontawesome (fa)。我看到 grails2 有一个插件,但是关于如何安装这个插件的配置和解释似乎在 grails 3 中不起作用。

因此,我尝试通过创建 assets/fonts/ 目录并将字体放在那里或多或少地手动添加 fa,将 css 添加到我的样式表目录并从 application.css 中引用它。当我通过 grails run-app 在 Idea 中运行时,所有 fa 资源都显示得很好。

但是,当我打包一个war文件以在tomcat中运行时,根本没有显示任何fa资源。当我查看为应用程序创建的编译样式表时,我放入我的 fa 样式表中的 ../fonts/ 已被删除,然后找不到字体文件。

这个生成的字体资源,以及所有其他字体资源都无法从我的应用程序的根目录中解析(404),但如果我在它们前面加上 /assets/ 则它们是可解析的。

我在资产管道中缺少什么配置才能使其正常工作?

0 投票
2 回答
2750 浏览

unit-testing - Grails 3 集成测试中没有 transactionManager 错误

我创建了一个新的 Grails 3.1.4 angular 项目以及一些扩展的域对象和控制器RestfulController。我在下面创建了集成测试。当我运行时,grails test-app -integration我得到了错误

测试类:

我确实在以下位置设置了数据源application.yml