1. 程式人生 > >Tomcat下jndi的三種配置方式

Tomcat下jndi的三種配置方式

Java命名和目錄介面(the Java naming and directory interface,JNDI)是一組在Java應用中訪問命名和目錄服務的API。命名服務將名稱和物件聯絡起來,使得讀者可以用名稱訪問物件。目錄服務是一種命名服務,在這種服務裡,物件不但有名稱,還有屬性

tomcat配置jndi有全域性配置和區域性配置。大致的有以下三種配置方式:

1:區域性配置。

步驟可以分3步

a.tomcat下的conf檔案下server.xml檔案中<host>新增如下程式碼

程式碼如下:

<Context path="/jndi" docBase="/jndi">

   <Resource

 name="jndi/test"

 type="javax.sql.DataSource"

 driverClassName="com.mysql.jdbc.Driver"

 maxIdle="2"

 maxWait="5000"

 username="root"

 password="abc123"

 url="jdbc:mysql://localhost:3306/test"

 maxActive="4"/>

</Context>

b.web.xml中需要配置的

程式碼如下:

<resource-ref>

        <description>Test DataSource</description>

        <res-ref-name>jndi/test</res-ref-name>

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

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

    </resource-ref>

c.jndi測試方法

public void test() throws NamingException, SQLException{

Context ctx = new InitialContext();

DataSource ds = (DataSource) ctx.lookup("java:comp/env/jndi/test");

Connection conn = ds.getConnection();

System.out.println(conn.isClosed());

}

2:也是區域性配置

在專案的META-INFO下面新建context.xml

程式碼如下:

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

<Context>

<Resource name="jndi/test" 

auth="Container" 

type="javax.sql.DataSource" 

driverClassName="com.mysql.jdbc.Driver" 

url="jdbc:mysql://localhost:3306/test" 

username="root" 

password="abc123" 

maxActive="20" 

maxIdle="10" 

maxWait="50000"/>

</Context>

3.全域性配置

在tomcat的conf資料夾下的context.xml配置:

程式碼如下:

<Context path="/jndi" docBase="/jndi">

   <Resource

 name="jndi/test"

 type="javax.sql.DataSource"

 driverClassName="com.mysql.jdbc.Driver"

 maxIdle="2"

 maxWait="5000"

 username="root"

 password="abc123"

 url="jdbc:mysql://localhost:3306/test"

 maxActive="4"/>

</Context>

以上3種方式,分別是兩種區域性配置,一種全域性配置,區域性配置第一種分三步配置並且測試。這三種不同配置,只是jndi配置不同,其他b、c兩步都是一樣的。