JNDI是J
EE中一個很重要的標准
通常我們是在J
EE編程中用到
Tomcat中提供了在JSP和Servelt中直接使用JNDI的方法
主要是通過dbcp連接池
下面談一下我在Tomcat
中配置和使用JNDI的方法
本文的對象是對j
ee編程有所了解的讀者
或者已經看過了我的Blog
tomcat的基本配置說明
一先在自己應用程序WEBINF目錄下的webxml添加以下語句 <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>
然後在tomcat目錄/conf/server
xml文件裡相應的<Context>元素
看我的Blog
tomcat的基本配置說明
添加如下子元素
<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=
(連接池dbcp的相關配置)
maxIdle=
maxWait=
/>
注意
要把你的驅動拷到common/lib下
我用的是pointbase因此我拷的是pbclient
jar到了common/lib下(對pointbase感興趣的讀者可以看我的另一篇文章pointbase數據庫學習
裡面也提到了我為什麼是用pointbase數據庫作為講解)
二例子以下是我的假設的項目ACMEWeb 在相應程序的web
xml裡添加
<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>
然後再server
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=
maxIdle=
maxWait=
/>
</Context>
建議你把上面的內容編寫成為一個xml文件
拷到conf/Catalina/<主機名>/文件夾下
若有不懂的地方可以參考我的Blog
tomcat的基本配置說明 和tomcat的文檔
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28330.html