Tomcat 6 JNDI配置

来源:互联网 发布:js rows 编辑:程序博客网 时间:2024/05/17 12:02

 

如果想看官网说明请点击:

http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html

 

一下内容是我的心得,已经在我实际的项目中测试过了。

第一步:把驱动包拷贝到tomcat的lib目录下。这是必须的一步。

第二步:相关的配置有两种,一种是全局,一种是局部。

  先看全局的:

     定位到tomcat的文件conf\context.xml,在里面<Context></Context>标签中添加一下内容:

<Resource name="jdbc/FIN_DS" auth="Container"

          type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"

          url="jdbc:oracle:thin:@10.168.166.148:1521:IDS"

          username="fin" password="fin"

maxActive="3" maxIdle="10" maxWait="180000"/>

定位到web-inf\web.xml文件添加:

<resource-ref>

        <res-ref-name>jdbc/sourName</res-ref-name>

        <res-type>javax.sql.DataSource</res-type>

        <res-auth>Container</res-auth>

</resource-ref>

Web.xml中的这段内容可以不加。

 

局部的:

局部:

定位到%TOMCAT_HOME%\conf\Catalina\localhost\Project.xml;

这里的Project是你的工程名,如果该文件不存在,可以手工建立。内容如下:

<?xml version="1.0" encoding="UTF-8" ?>

<Context docBase="D:\Work \ZDNEWWORK\scheduler\webapp"  path="/scheduler"

    reloadable="true"

        privileged="true"

        antiResourceLocking="false"

        antiJARLocking="false">

        <Resource name="jdbc/FIN_DS" auth="Container"

          type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"

          url="jdbc:oracle:thin:@10.168.166.148:1521:IDS"

          username="fin" password="fin"

maxActive="3" maxIdle="10" maxWait="180000"/>

</Context>

注意:

下面的局部是生产阶段的

<?xml version="1.0" encoding="UTF-8" ?>

<Context docBase="scheduler"   path="/scheduler"  reloadable="true">

        <Resource name="jdbc/FIN_DS" auth="Container"

          type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"

          url="jdbc:oracle:thin:@10.168.166.148:1521:IDS"

          username="fin" password="fin"

maxActive="3" maxIdle="10" maxWait="180000"/>

</Context>

生产阶段时候如果使用局部方式把war包放到tomcat的webapp下了,会报一个警告,但是不影响运行及使用,如果不想要警告就把包放到其他目录并修改docBase的值实际解压后文件的目录

 

第三步:写自己的xml或则properties文件,并且读取JNDI 名字,其格式必须为

java:/comp/env/jdbc/FIN_DS

FIN_DS为你自己的JNDI source名字

通过程序调用JNDI代码:

Context ctx =new InitialContext();

DataSource ds=(DataSource)ctx.lookup(sourStr);//java:/comp/env/jdbc/FIN_DS格式

Connection conn=ds.getConnection();

通过spring使用jndi配置片段:

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">

  <property name="jndiName" value="java:comp/env/jdbc/sourName"></property>

</bean>