2016-11-16 28 views
0

我与迁移从Grails的2至3的GrailsGrails的3 JNDI数据源为Tomcat,Weblogic的,Glassfish的 - Vs的Grails的2

在Grails的2实验,我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运行的应用程序” 时,出现此错误:

| 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运行的应用程序,也能正常工作部署WAR到Tomcat工作正常。

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

回答