【发布时间】:2014-03-14 17:14:50
【问题描述】:
我的 Grails 应用程序通常在 Tomcat 上运行。我最近让它为 Weblogic 工作。我遵循了这里的所有注释: notel reference link 而且我的应用确实可以在 Weblogic 上运行,但是......我在数据源的工作方式上遇到了问题......
在我的 DataSource.groovy 文件中有这个:
production {
dataSource {
dbCreate = "validate"
resourceRef="true"
jndiName = "java:/comp/env/jdbc/myGrails"
使其在 Tomcat 上运行。但它不适用于 Weblogic。
在我的 DataSource.groovy 文件中有这个:
production {
dataSource {
dbCreate = "validate"
resourceRef="true"
jndiName = "jdbc/myGrails"
使它可以在 Weblogic 上运行,但不能在 Tomcat 上运行。
如何配置 Datasource.groovy 中的 jndiName 以使其同时在 Weblogic 和 Tomcat 上工作?
我确实阅读了这篇文章: Tomcat vs Weblogic JNDI Lookup 但找不到适合我的解决方案。我可能不明白,因为它更适合 Spring(我不太了解),而不是专门针对 Grails。希望有人可以通过 Grails/Datasource.groovy 解决方案帮助我。
【问题讨论】:
-
你试过使用datasource-jndi-declare插件吗?尚未对其进行测试,但看起来这将解决差异。该插件只是确保如果数据源中提供了 JNDI 名称,那么它会省略容器前缀并在 Web 描述符中添加资源引用。试一试。我也会调查一下。这是gist of plugin's implementation。
标签: java tomcat grails weblogic