Tomcat 定制JNDI URL Resource

有个项目生产环境是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"/>

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-25 02:13:33

Tomcat 定制JNDI URL Resource的相关文章

在Tomcat配置JNDI数据源的三种方式

在Tomcat配置JNDI数据源的三种方式 分类: java进阶2012-07-01 10:24 18328人阅读 评论(0) 收藏 举报 tomcatjdbcweblogicmysqlbean测试 目录(?)[+] 在我过去工作的过程中,开发用服务器一般都是Tomcat 数据源的配置往往都是在applicationContext.xml中配置一个dataSource的bean 然后在部署时再修改JNDI配置 我猜是因为Tomcat的配置需要改配置文件 不像JBoss,Weblogic等服务器在

Eclipse +Tomcat配置JNDI数据源

以下是具体配置的步骤: 1.首先配置Tomcat下的jndi数据源.具体存放目录apache-tomcat-7.0.59\conf\Catalina\localhost 下 osh.xml <?xml version='1.0' encoding='utf-8'?> <Context docBase="G:\sbwork\oshome\WebContent" reloadable="false" path="/osh">

Tomcat配置JNDI数据源

本文将介绍Tomcat配置JNDI数据源的方法,主要分为配置局部数据源(仅供单个应用使用)和全局数据源(所有用该Tomcat的应用都可以使用) 一.思考 从我们学习Web开发以来,我们都是通过程序代码来实现数据库的访问的.从一开始直接将数据库配置信息写在代码中,到后来将配置信息抽取出来写在了Properties文件中,我们访问数据库的代码更加精简. 而通过JNDI方式访问数据库则更为直接,JNDI连接数据库的方式直接将数据库信息放在Tomcat中,而项目代码里直接通过JNDI技术就可以得到数据源

帆软报表FineReport中数据连接之Tomcat配置JNDI连接

1. 问题描述 在帆软报表FineReport中,通过JNDI方式定义数据连接,首先在Tomcat服务器配置好JNDI,然后在设计器中直接调用JNDI的名字,即可成功使用JNDI连接,连接步骤如下: 2. 实现步骤 · 使用版本及环境 下面以Windows XP系统,tomcat 5.5,jdk 1.6,连接SQLserver2000数据库进行JNDI连接说明,其他版本数据库步骤基本相同. 2.1 拷贝驱动 将连接数据库的JDBC驱动拷贝到Tomcat安装目录下的%Tomcat_HOME%\co

Tomcat配置JNDI

1.JNDI是什么?使用JNDI有什么好处? JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一. 我个人对jndi的了解是:配置数据库的方式用在了外部配置,一般会是web容器的配置文件里面,而达到如果数据库连接属性或数据库类型不一样可以做到不修改编码. 但是个人觉得这是一项落后的技术,毕竟现在用springboot,本身不用我们去关心太多web容器的问题,而且springboot的基于外部配置文件的自

Tomcat 6 --- JNDI详解

JNDI(Java Naming and Directory Interface, Java命名和目录接口),说白了,就是通过配置一些xml文件,方便用户直接调用API使用某些通用的资源. 举个简单的例子,如果在tomcat中部署了很多应用,应用都需要使用同一个数据库,如果每个应用都在代码中配置数据库的连接,肯定是很麻烦的. 所以通过JNDI就可以简单的通过 InitialContext 获取到统一配置的资源,简化代码的编写. 本篇主要内容按照上面来讲解,其中样例部分主要说明一下通用javabe

tomcat配置JNDI获取数据源

各个web工程可以通过工程内的xml文件配置访问数据库的数据源,这样的配置是各个工程私有的.基于JNDI为tomcat配置数据源,则可以做成全局的,各工程只需要通过便签引用数据源即可. 1.需要将数据库的连接驱动mysql-connector-java-5.1.21.jar及数据库连接池的jar包druid-0.2.9.jar放到Tomcat 6.0\lib下. 2.修改tomcat的配置文件,基于JNDI配置数据源,Tomcat 6.0\conf\context.xml改成如下即可,原文件中多

tomcat的 JNDI 配置

tomcat的conf/server.xml 配置 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="/platformproxy

【Mail】Tomcat提供JNDI方式支持JavaMail(三)

流程介绍 Tomcat提供了JavaMail的支持,是通过JNDI的方式实现的,具体流程是: Tomcat启动的时候,自身产生一个Session对象,放在JNDI容器中给其他项目调用,其他项目只要通过JNDI API就能获取JNDI中的对象,并在项目中使用. 使用步骤 配置JNDI资源:新建一个javaweb的maven项目,并在webapp/META-INF中新建一个文件context.xml. context.xml文件内容如下: 1 <Context> 2 <Resource na