Grails 应用程序 - Tomcat 与 Weblogic 上的 JNDI

Posted

技术标签:

【中文标题】Grails 应用程序 - Tomcat 与 Weblogic 上的 JNDI【英文标题】:Grails app - JNDI on Tomcat Vs Weblogic 【发布时间】: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。 【参考方案1】:

不断搜索并找到了这个解决方案......它成功了!又好又简单。

How to specify portable jndi datsource lookup in grails

【讨论】:

以上是关于Grails 应用程序 - Tomcat 与 Weblogic 上的 JNDI的主要内容,如果未能解决你的问题,请参考以下文章

Grails项目BuildConfig.groovy Tomcat插件版本?

如何让 SpringSecurity/Grails 与终止 SSL 的负载均衡器很好地配合使用

使用 Apache/Tomcat + 虚拟主机部署多个 grails 应用程序

在现有站点上使用 Tomcat 部署 Grails 应用程序

Tomcat 上的多个 Grails 应用程序

使用 Tomcat 部署 grails 应用程序的最佳实践