2016-11-16 29 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中工作嗎?

回答