Leh*_*ane 6 java resources tomcat jndi
我在Tomcat(5.5)中运行了几个servlet应用程序.所有servlet都使用通过JNDI共享的公共工厂资源.目前,我可以通过在/conf/server.xml文件中将工厂资源包含为GlobalNamingResource来使一切正常工作,然后让每个servlet的META-INF/context.xml文件包含资源的ResourceLink.XML文件中的代码段包含在下面.注意:我对tomcat并不熟悉,所以我不是说这是一个很好的配置!
但是,我现在希望能够使用RPM自动将这些servlet安装到多个tomcat实例中.RPM将首先将WAR复制到webapps目录,将工厂的jar复制到common/lib目录(这很好).但它还需要确保将工厂资源作为所有servlet的资源包含在内.
全局添加资源的最佳方法是什么?我不太热衷于编写一个进入server.xml文件的脚本,并以这种方式添加资源.有没有办法让我添加多个server.xml文件,以便我可以编写一个新的server-app.xml文件,它会将我的设置连接到server.xml?或者,最好还是将这个JNDI资源添加到所有servlet而不使用server.xml?
ps重新启动服务器不会是一个问题,所以我不介意更改是否自动获取.
谢谢
来自server.xml的代码段
<!-- Global JNDI resources -->
<GlobalNamingResources>
<Resource name="bean/MyFactory"
auth="Container"
type="com.somewhere.Connection"
factory="com.somewhere.MyFactory"/>
</GlobalNamingResources>
Run Code Online (Sandbox Code Playgroud)
整个servlet的META-INF/context.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<ResourceLink global="bean/MyFactory"
name="bean/MyFactory"
type="com.somewhere.MyFactory"/>
</Context>
Run Code Online (Sandbox Code Playgroud)
从 Tomcat 4 开始,建议不要将任何 JNDI 信息放入server.xml文件中。查看Tomcat 5.5 的文档:
对于 Tomcat 5,与 Tomcat 4.x 不同,不建议将元素直接放置在 server.xml 文件中。这是因为它使得修改 Context 配置更具侵入性,因为如果不重新启动 Tomcat 就无法重新加载主 conf/server.xml 文件。
我知道您声称不关心这个,但相信我,您的部署团队会关心,维护团队稍后会感谢您。即使这意味着你最终会感谢自己。
如果您需要在服务器上的所有 Web 应用程序之间共享 JNDI 设置,则应将其放入文件 $CATALINA_HOME/conf/context.xml 中。很可能,该位置已经存在一个现有的 context.xml,但您应该能够编写一个简单的应用程序,通过您最喜欢的语言以及与之捆绑的任何 DOM 构建器来添加资源节点。或者,如果您想坚持使用命令行,请查看这篇文章,其中提供了一些 XML 处理 shell 脚本来帮助您。
祝你好运!
| 归档时间: |
|
| 查看次数: |
7515 次 |
| 最近记录: |