当前位置:  开发笔记 > 编程语言 > 正文

Tomcat vs Weblogic JNDI Lookup

如何解决《TomcatvsWeblogicJNDILookup》经验,为你挑选了2个好方法。

我们使用的Weblogic服务器已配置为允许JNDI数据源名称,如"appds".

对于开发(localhost),我们可能正在运行Tomcat,并且当在server.xml的部分中声明时,Tomcat将在JNDI树中的"java:comp/env/jdbc/*"上挂起JNDI数据源.

问题:在Weblogic中,JNDI查找是"appds",而在Tomcat中,似乎我必须提供正式的"java:comp/env/jdbc/appds".我担心Tomcat版本是一个隐含的标准,但不幸的是,我不能改变Weblogic的配置...所以这意味着我们最终得到两个不同的spring配置文件(我们使用的是spring 2.5)来促进不同的环境.

有没有一种优雅的方式来解决这个问题.我可以直接在Tomcat中查看JNDI名称吗?Spring可以在两个地方都有名字和外观吗?谷歌搜索或建议会很棒.



1> Leonel..:

如何在Web应用程序中使用单个JNDI名称

我自己几个月来一直在努力.最好的解决方案是使您的应用程序可移植,以便在Tomcat和Weblogic中具有相同的JNDI名称.

为此,您可以更改您的web.xmlspring-beans.xml指向单个jndi名称,并提供每个供应商特定的jndi名称的映射.

我把每个文件放在下面.

你需要:

web.xml中的条目,供您的应用使用单个名称

WEB-INF/weblogic.xml用于将jndi名称映射到WebLogic管理的资源的文件

META-INF/context.xml用于将jndi名称映射到Tomcat管理的资源的 文件

这可以在Tomcat安装中,也可以在您的应用程序中.

作为一般规则,喜欢在您的应用中使用您的jndi名称jdbc/MyDataSource,jms/ConnFactory并避免使用前缀java:comp/env/.

此外,数据源和连接工厂最好由容器管理并与JNDI一起使用.在应用程序中实例化数据库连接池是一个常见错误.

弹簧






web.xml中


    My data source
    jdbc/appds
    javax.sql.DataSource
    Container

weblogic.xml中





    appds
    jdbc/appds


META-INF/context.xml(用于Tomcat)


    



2> martsraits..:

JndiLocatorSupport有房产resourceRef.设置为true时,"java:comp/env /"前缀将自动添加前缀.因此,我认为从Tomcat迁移到Weblogic时区分此参数是正确的.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有