Tomcat 定制JNDI URL Resource

本文介绍如何在Tomcat中定制JNDI URL Resource,以匹配WebSphere的特性。通过创建一个包含URLFactory类的jar文件,并将其添加到Tomcat的classpath,可以实现基于URL的JNDI资源。接着,配置Tomcat的resource和web.xml,最后在Spring XML配置文件中进行JNDI查找,从而访问文件夹路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有个项目生产环境是Webshpere,WAS提供了基于URL的JNDI Resource, 而我们的自动化集成测试阶段使用的tomcat容器不支持这种类型的Resource,所以需要自己定制。定制很简单,先按tomcat定制resource的方式建一个jar可以读取url,加入到tomcat的classpath,然后就可以通过配置来使用基于URL的JNDI资源了。这里给出一个通过jndi访问文件夹路径的例子。

  • 建立jar,通过建立一个jar maven项目,然后在里面定义一个com.demo.URLFactory的类,加入以下实现,然后build出jar文件(例如:tomcat_jndi_url.jar)
public class URLFactory implements ObjectFactory
{

    @Override
    public Object getObjectInstance(Object obj, Name name, Context context, Hashtable<?, ?> environment) throws Exception
    {
        Reference ref = (Reference) obj;
        String url = (String) ref.get("url").getContent();
        return new URL(new URL("file:"),url);
    }

}
  • 将jar放入tomcat的classpath目录
  • 在tomcat加入resource创建方式,指定之前包中的类来生成url
<Resource name="url/demo"
              auth="Container"
              type="java.net.URL"
              factory="com.demo.URLFactory" url="./demo/"/>
  • 在web.xml加入resource使用方式
<resource-ref>
  <description>Object factory for url.</description>
  <res-ref-name>url/demo</res-ref-name>
  <res-type>java.net.URL</res-type>
  <res-auth>Container</res-auth>
  <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
  • 在Spring xml配置文件中加入jndi-lookup,就可以访问到文件夹地址了
<jee:jndi-lookup id="demo" jndi-name=" java:comp/env/url/demo"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值