Archive for the ‘Google App Engine’ Category
GWT 1.6でJNDIを使う方法

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を設置しておくと便利かも。
====================以下、検索用====================
続きを読む »
Google App Engine for Java (資料付き)
Google App EngineがついにJavaに対応しました!簡単にデモを動かす所までまとめましたので手順を公開します。
現在SDKのダウンロードが困難なようですので、ミラーへのリンクを付けてあります。
ウェブで変換するときに少し崩れましたがご了承ください。
今週末にでも、さっそく勉強会を開催しようと企んでおります。興味のある方はメールでご連絡下さい!


