Tomcat5.5下的jndi的配置

JNDI是J2EE中一个很重要的标准,通常我们是在J2EE编程中用到,Tomcat中提供了在JSP和Servelt中直接使用JNDI的方法,主要是通过dbcp连接池,下面谈一下我在Tomcat5.5中配置和使用JNDI的方法。

方法步骤

  1. 先在自己应用程序WEB-INF目录下的web.xml添加以下语句:
1
2
3
4
5
6
<resource-ref>
<descrtiption>引用资源说明</descrtiption>
<res-ref-name>引用资源的JNDI名</res-ref-name>
<res-type>引用资源的类名</res-type>
<res-auth>管理者(Container)</res-auth><!--Container-容器管理 Application-Web应用管理-->
</resource-ref>
  1. 然后在tomcat目录/conf/server.xml文件里相应的元素,添加如下子元素:
1
2
3
4
<Resource name="引用资源的JNDI名" auth="Container" type="javax.sql.DataSource"
driverClassName="com.pointbase.jdbc.jdbcUniversalDriver(自己的jdbc驱动)"
url="jdbc:pointbase:server://localhost/acme(数据库连接url)"
username="root(用户名)" password="root(密码)" maxActive="20(连接池dbcp的相关配置)" maxIdle="10" maxWait="10000"/>

注意 :需要把你的驱动拷到 common/lib 下。

示例

在相应程序的web.xml里添加:

1
2
3
4
5
6
7
<web-app> 
<resource-ref>
<res-ref-name>jdbc/AcmeDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>

然后再 tomcat/server.xml 里修改:

1
2
3
<Context path="/ACMEWeb" reloadable="true" docBase="E:\eclipseproject\ACMEWeb" workDir="E:\eclipseproject\ACMEWeb\work">
<Resource name="jdbc/AcmeDB" auth="Container" type="javax.sql.DataSource" driverClassName="com.pointbase.jdbc.jdbcUniversalDriver" url="jdbc:pointbase:server://localhost/acme" username="root" password="root" maxActive="20" maxIdle="10" maxWait="10000"/>
</Context>

建议你把上面的内容编写成为一个xml文件,拷到 conf/Catalina/<主机名>/ 文件夹下。