JNDI是J2EE中一个很重要的标准,通常我们是在J2EE编程中用到,Tomcat中提供了在JSP和Servelt中直接使用JNDI的方法,主要是通过dbcp连接池,下面谈一下我在Tomcat5.5中配置和使用JNDI的方法。本文的对象是对j2ee编程有所了解的读者.
一、先在自己应用程序WEB-INF目录下的web.xml添加以下语句
二、然后在tomcat目录/conf/server.xml文件里相应的<context></context>元素, 添加如下子元素
建议你把上面的内容编写成为一个xml文件,拷到conf/Catalina/<主机名>/文件夹下
一、先在自己应用程序WEB-INF目录下的web.xml添加以下语句
xml 代码
- <resource-ref>
- <descrtiption>引用资源说明descrtiption>
- <res-ref-name>引用资源的JNDI名res-ref-name>
- <res-type>引用资源的类名res-type>
- <res-auth>管理者(Container)res-auth>
- resource-ref>
xml 代码
- <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下,我用的是pointbase因此我拷的是pbclient44.jar到了common/lib下
三、举个例说明,以下是我的假设的项目ACMEWeb:
在相应程序的web.xml里添加
xml 代码
- <web-app ....>
- .....
- <resource-ref>
- <res-ref-name>jdbc/AcmeDBres-ref-name>
- <res-type>javax.sql.DataSourceres-type>
- <res-auth>Containerres-auth>
- resource-ref>
- web-app>
然后再server.xml里修改:
xml 代码
- <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>