TomcatでのJNDI接続の構成
3239 ワード
JNDI(Java Naming and Directory Interface、Javaネーミングおよびディレクトリ・インタフェース)は、Javaアプリケーションでネーミングおよびディレクトリ・サービスにアクセスするAPIのセットです.ネーミング・サービスは、名前とオブジェクトを関連付けて、名前でオブジェクトにアクセスできます.ディレクトリサービスはネーミングサービスで、オブジェクトには名前だけでなく属性もあります.
tomcat構成jndiにはグローバル構成とローカル構成があります.大まかに以下の3つの配置方式がある.構成する前にtomcatのlibディレクトリの下にデータベースのドライバjarパッケージを入れる必要があります.
1つ目:グローバル構成
1)tomcatのconfフォルダの下にあるcontext.xmlプロファイルに追加:
2)プロジェクトのweb.xmlにリソースリファレンスを追加するには、次の手順に従います.
ここでres-ref-nameの値はcontextとする.xmlのname値は一致します.
3)jndi試験方法:
4)jspでjndiのロードを呼び出す方法は、mainメソッドで直接テストすることはできません.コンテナを起動してjspから呼び出す必要があります.
2つ目:ローカル構成(推奨しません).
1)tomcatのserver.xmlのタブに、次の項目を追加します.
その他の構成は第1の方法と同じです.
3つ目:ローカル構成.
1)プロジェクトのMETA-INFOの下にcontextを新規作成する.xml.参加:
その他の構成は第1の方法と同じです.
まとめ:ローカルを構成する場合は、tomcatに依存しない3つ目の方法をお勧めします.しかし、tomatに依存するが、グローバルであり、複数の構成が可能な第1の方法を推奨する.後で切り替えて使いやすいです.プロジェクトのweb.xmlに追加されたリソースリファレンスは有無を指定できます.
tomcat構成jndiにはグローバル構成とローカル構成があります.大まかに以下の3つの配置方式がある.構成する前にtomcatのlibディレクトリの下にデータベースのドライバjarパッケージを入れる必要があります.
1つ目:グローバル構成
1)tomcatのconfフォルダの下にあるcontext.xmlプロファイルに追加:
<Resource name="jndi/mybatis"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/appdb"
username="root"
password="123456"
maxActive="20"
maxIdle="10"
maxWait="10000"/>
2)プロジェクトのweb.xmlにリソースリファレンスを追加するには、次の手順に従います.
<resource-ref>
<description>JNDI DataSource</description>
<res-ref-name>jndi/mybatis</res-ref-name>
<res-ref-type>javax.sql.DataSource</res-ref-type>
<res-auth>Container</res-auth>
</resource-ref>
ここでres-ref-nameの値はcontextとする.xmlのname値は一致します.
3)jndi試験方法:
public void testJNDI() throws NamingException, SQLException{
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jndi/mybatis");
Connection conn = ds.getConnection();
System.out.println(conn.isClosed());
}
4)jspでjndiのロードを呼び出す方法は、mainメソッドで直接テストすることはできません.コンテナを起動してjspから呼び出す必要があります.
TestPageAccessURL test = new TestPageAccessURL();
test.testJNDI();
2つ目:ローカル構成(推奨しません).
1)tomcatのserver.xmlの
<Context path="/demo_jndi" docBase="/demo_jndi">
<Resource
name="jndi/mybatis"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="root"
password="123456"
url="jdbc:mysql://localhost:3306/appdb"
maxActive="4"/>
</Context>
その他の構成は第1の方法と同じです.
3つ目:ローカル構成.
1)プロジェクトのMETA-INFOの下にcontextを新規作成する.xml.参加:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jndi/mybatis"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/appdb"
username="root"
password="123456"
maxActive="20"
maxIdle="10"
maxWait="10000"/>
</Context>
その他の構成は第1の方法と同じです.
まとめ:ローカルを構成する場合は、tomcatに依存しない3つ目の方法をお勧めします.しかし、tomatに依存するが、グローバルであり、複数の構成が可能な第1の方法を推奨する.後で切り替えて使いやすいです.プロジェクトのweb.xmlに追加されたリソースリファレンスは有無を指定できます.