gpt4 book ai didi

用于 Tomcat、Weblogic、Glassfish 的 Grails 3 JNDI 数据源 - Vs Grails 2

转载 作者:行者123 更新时间:2023-12-02 15:50:07 24 4
gpt4 key购买 nike

我正在尝试从 Grails 2 迁移到 Grails 3。

在 Grails 2 中,我在 Production-env 中的 datasource.groovy 文件中使用它作为我的 JNDI 名称

jndiName = "${(System.getProperty('catalina.home') && (System.getProperty('java.class.path')).trim().toLowerCase().indexOf('tomcat') > 0 ) ? 'java:comp/env/' : ''}jdbc/myGrails"

我发现这对 Glassfish、Weblogic 和 Tomcat 很有效。

但是,当我在 Grails 3 中尝试此操作时,在 application.yml 中:
jndiName: ${(System.getProperty('catalina.home') && (System.getProperty('java.class.path')).trim().toLowerCase().indexOf('tomcat') > 0 ) ? 'java:comp/env/' : ''}jdbc/myGrails

运行“grails run-app”时出现此错误:
| Error Error occurred running Grails CLI: mapping values are not allowed here
in 'reader', line 123, column 169:
... mcat') > 0 ) ? 'java:comp/env/' : ''}jdbc/traxGrails
^
(Use --stacktrace to see the full trace)

如果我在 Grails 3 中使用它:
jndiName: java:/comp/env/jdbc/myGrails

然后在使用 Grails run-app 时它可以正常工作,并且在将 WAR 部署到 Tomcat 时也可以正常工作。

有人可以帮助我从 Grails 2 中获取我的“jndi 表达式”以在 Grails 3 中工作吗?

最佳答案

看起来您正在尝试在 yml 文件中使用 groovy 语法,但这是行不通的。您可以创建 application.groovy如果你想使用 groovy 语法,文件(将与 application.yml 文件合并)。

还可以查看 spring-boot 允许您通过 env 变量、属性、yml 等注入(inject)属性的多种方式。http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

关于用于 Tomcat、Weblogic、Glassfish 的 Grails 3 JNDI 数据源 - Vs Grails 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40644074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com