Я экспериментировал с мигрирующими из Grails 2 в Grails 3.Grails 3 JNDI DataSource для Tomcat, WebLogic Glassfish - Vs Grails 2
В Grails 2, я использовал это как мое имя JNDI в DataSource.groovy файле , в рамках производственно-окр
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.
Может кто-нибудь помочь мне получить мое выражение «jndi» от Grails 2 для работы в Grails 3?