seize a chance@Wiki

Tomcat5.5でデータベースアクセス

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集
<u style="display: none;">... no changes ... no changes ... no changes ... no changes ... no changes ... no changes ... no changes ... no changes ... no changes ... no changes ... no changes ... <a href='http://www.ringtones-dir.com'>free ringtones</a> : [http://www.ringtones-dir.com download ringtones] - [HTTP://www.ringtones-dir.com download ringtones] : [nokia ringtones|http://www.ringtones-dir.com] - [nokia ringtones|HTTP://www.ringtones-dir.com] : http://www.ringtones-dir.com/download/ : http://www.ringtones-dir.com ring tones : http://www.ringtones-dir.com | ringtones download : "samsung ringtones" http://www.ringtones-dir.com : [http://www.ringtones-dir.com|ringtones free] </u>*Tomcat5.5のDataSourceをJNDI経由で使用するには
以下の3箇所への設定が必要。

  どこに 何を
%Tomcat%¥conf server.xml
%Tomcat%¥conf¥Catalina¥localhost コンテキスト.xml
%コンテキスト%¥WEB-INF web.xml

《前提》
Tomcatプラグインを入れたEclipseを使って「Context declaration mode」は「Context files」に設定しておく
(メニューバー:ウィンドウ→設定→Tomcat)
Eclipseのパッケージエクスプローラー右クリックで「Tomcatプロジェクト」を選んで「Tomcatのコンテキストを更新する」を実行すると自動的に2のコンテキスト(そのプロジェクトフォルダ名).xmlが作成される。
もちろんJDBCドライバは|%Tomcat%¥common¥libに入れておく


server.xml

 server.xmlには具体的に使用するDataSource情報を記入する。
Webサーバにあるすべてのコンテキストが同じDataSourceを使用できるようここに設定する。(以前は各コンテキストが個別にweb.xmlで設定していたらしい)
<GlobalNamingResources>と</GlobalNamingResources>の間に以下のリソースを追加する。


 <Resource name="ssjdb"
      auth="Container"
      type="javax.sql.DataSource"
      factory="org.apache.tomcat.dbcp.dbcp.
                      BasicDataSourceFactory"
      driverClassName="org.postgresql.Driver"
      url="jdbc:postgresql://localhost:5432/rtm_log_cfg"
      username="postgre"
      password="XXXXXX"
      maxActive="20"
      maxIdle="10"
 />
 *postgreSqlを使用


コンテキスト.xml

Webサーバとコンテキストを紐付けるための設定ファイル。
リソースをリンクさせている。
 <Context path="/ex6-1" reloadable="false" 
   docBase="C:ducationx6-1" 
   workDir="C:ducationx6-1work" >
 <ResourceLink name="jdbc/ssjdb" global="ssjdb" 
   type="javax.sql.DataSource" />
 <Logger className="org.apache.catalina.logger.
   SystemOutLogger" verbosity="4" timestamp="true"/>
 </Context>


web.xml

使用したいリソースを指定する。コンテキスト.xmlで設定した名前(name)を書く。
<web-app>と</web-app>の間に以下のリソース指定を追加する。

 <resource-ref>
   <res-ref-name>jdbc/ssjdb</res-ref-name>
   <res-type>javax.sql.DataSource</res-type>
   <res-auth>Container</res-auth>
 </resource-ref>


解説

 server.xmlでグローバルネーミングリソースに name="ssjdb" を設定する。

 全体用に設定されたこのデータソースをコンテキストから指定して使うため、コンテキスト.xmlでは name="jdbc/ssjdb"(web.xmlのnameはこっち)と global="ssjdb"(server.xmlのnameはこっち)を紐付けしている。

 コンテキストのweb.xmlからは name="jdbc/ssjdb" を指定してあげればよい。


 (補足)server.xmlのname="jdbc/ssjdb"、コンテキスト.xmlの global="jdbc/ssjdb" と設定してみたらjavax.naming.NameNotFoundExceptionとなった。
+ タグ編集
  • タグ:
  • http://www.ringtones-dir.com

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

目安箱バナー