GWT 1.6でJNDIを使う方法
(0)
(0)
(0)
(0)
Total: 0

Google Plugin for Eclipseにも同包されている、Google Web Toolkitの最新バージョンである1.6からは、サーブレットコンテナがTomcatからJettyに変更されています。
これは、Google App EngineのサーブレットコンテナにJettyが採用されている事と関係があると思いますが、古いGWTのローカル環境では動作していたJNDIが動作しなくなったという問題があります。
これは、業務で利用されている方は非常にお困りでないかと思います。私は困りました。。。
以下、Google Plugin for Eclipseで作成したGWT プロジェクトでJNDIを使えるようにする方法。
- プロジェクトディレクトリ直下に[lib]ディレクトリを作成し、jetty-naming-6.1.11.jarとjetty-plus-6.1.11.jarを、コピーしクラスパスを通す。
- jetty-web.xmlを[war/WEB-INF]にコピーする。(jetty-web.xmlの書き方は以下の通り)
- プロジェクト名を右クリック[Run As]-[Web Application]で一度実行し、Run設定ファイルを自動生成させる。(この設定を行いたいプロジェクトを過去に1回でも実行していればOK)
- プロジェクト名を右クリック[Run As]-[Run Configurations...]で表示されるダイアログの[Arguments]タブの"VM arguments"に[-Djava.naming.factory.initial=org.mortbay.naming.InitialContextFactory]を記入し、[Apply]ボタンをクリック
- 以後、この設定で実行するとJNDIを正しく設定ファイルからロードします。
・MySQL用の設定です。他のDBの設定方法はこちらから。
-
<?xml version="1.0" encoding="UTF-8"?>
-
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
-
-
<configure class="org.mortbay.jetty.webapp.WebAppContext">
-
-
<new id="DSTest" class="org.mortbay.jetty.plus.naming.Resource">
-
-
<arg>java:comp/env/jdbc/screenshot</arg>
-
<arg>
-
<new class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
-
<set name="Url">jdbc:mysql://testdb.soba-project.com:3306/testservice</set>
-
<set name="User">test</set>
-
<set name="Password">test</set>
-
</new>
-
</arg>
-
</new>
-
-
</configure>
本番はTomcatで動作させたい人は、[war]ディレクトリに[META-INF]ディレクトリを作成して、従来のJNDI設定を書いたcontext.xmlを設置しておくと便利かも。
====================以下、検索用====================
続きを読む »















