问题标签 [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.
grails - Jenkins 的 Grails 3.1.2 项目:未知的命令行选项“-n”
我复制粘贴了 jenkins 作业(适用于 Grails 2.4.5),但在新的 Grails 3.1.2 项目中失败:
如果我运行./gradlew clean
或./gradlew war
在本地环境中运行,它会完美运行。詹金斯如何运行它?
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 版本。
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 中而不是在命令行中起作用感到有点困惑。有什么线索吗?
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 语句放在频繁使用的类的构造函数中。
就是这样。现在我们正在做快速的异步日志记录,在配置更改时不会丢失任何日志消息。
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 启动服务器时没有任何反应。没有打印,也没有错误。我究竟做错了什么?
grails - Grails 3:集成测试在开发环境中运行,而不是在测试环境中
我已经分离了dataSourceConfig.yml
数据库配置文件:
我将其连接到以下项目Application.java
:
当我通过 Intellij IDEA 15 运行集成测试时,它会在开发环境中运行测试,但 YAML 配置文件有测试部分。
有谁知道如何解决这个问题?下面的命令没有帮助。
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.
- grails 3.1.4> create-app demo
- create-domain-class Book
- create-domain-class Author
- Edit domain classes
- generate-all *
- change tomcat dependency from compile to provided in build.gradle
- change dataSource in application.yml to use my JNDI Oracle connection
- Add server: contextPath: /demo to application.yml
- run-app -> Works
- gradle war
- 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.
spring - 我可以在域对象构造函数中调用 grails 服务吗?
Grails 版本:3.1.2
我有一个版本控制服务 (VersionService),每当我创建域对象 (VersionedDomainClass) 的新实例时,我都想调用它。我希望 VersionedDomainClass 处理调用服务,但是当我尝试这样做时:
构造函数在启动期间被调用,此时 versionService 仍然为空,所以我得到一个 NPE:
我不需要在启动时实例化任何 VersionedDomainClass;看起来 Spring 正在尝试创建它自己的域类实例,也许?在创建服务 bean 之前,有什么方法可以阻止 Spring 这样做?
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/ 则它们是可解析的。
我在资产管道中缺少什么配置才能使其正常工作?
unit-testing - Grails 3 集成测试中没有 transactionManager 错误
我创建了一个新的 Grails 3.1.4 angular 项目以及一些扩展的域对象和控制器RestfulController
。我在下面创建了集成测试。当我运行时,grails test-app -integration
我得到了错误
测试类:
我确实在以下位置设置了数据源application.yml
: