logo

サイト内検索
ココログ最強検索 by 暴想

最近のトラックバック

無料ブログはココログ

« GXT (Ext Gwt)のMVCフレームワーク | トップページ | GXT(Ext Gwt)2.0移行上の考慮点 »

GWT 1.6の環境設定

Eclipse Pluginの導入
GWT1.6からはEclipseのPluginが用意されています。以下のEclipseのヘルプ-ソフトウエア更新を選択し、以下のupdate siteを指定します。

Eclipse 3.3 (Europa)

 

http://dl.google.com/eclipse/plugin/3.3

 

Eclipse 3.4 (Ganymede)

 

http://dl.google.com/eclipse/plugin/3.4

Goggle Plugin forEclipse 3.4

Google App Engine Java SDK 1.2.0

Google Web Toolkit SDK 1.6.4

すべてをチェックして導入します。

Gwt16inst

新規にアプリケーションを作成する場合は、Plugin導入により表示されるNew  Web Application Projectのボタンを押してウィザードに従っていけば出来てしまいます。

ここでは、既存のGWT1.5のプロジェクトをGWT1.6環境へ移行する方法を述べます。

既存プロジェクトの移行

http://code.google.com/intl/ja/webtoolkit/doc/1.6/ReleaseNotes_1_6.html

↑このページの「Upgrading」の箇所に1.5以前のプロジェクトの移行方法が乗っていますが、せっかくのEclipseのPluginの機能を生かしたいので、あえてGWT1.6の新規プロジェクトを作成し、そこに既存のリソースを上書きする方法をとります。

まずNew  Web Application Projectのボタンを押してウイザードを開始します。

既存のプロジェクトMyApplicationから1.6のプロジェクトMyApplication2に移行するとします。

Project nameにMyApplication2、Packageには既存のプロジェクトのgwt.xmlファイルが存在するパッケージを指定します。

Gwt16new

ソースを上書き

既存のプロジェクトのsrcフォルダー以下を新プロジェクトのsrcに上書きします。

その際、gwt.xmlファイルのみ以下の変更を加えます。

  • <module>タグに<module rename-to='myapplication2'>のようにrename-toを設定する。上書きする前のgwt.xmlを参考にすれば良いです。
  • <servlet タグは必要無くなったので削除する。


warフォルダー以下の設定

既存のweb.xmlファイルをwar/WEB-INFの下に上書きコピーします。ここで、<servlet-mapping>の<url-pattern>を変更する必要があります。通常、RPCのサービスを呼び出す際のURLは

String url = GWT.getModuleBaseURL() + "gwt";

てな具合に取得していると思いますが、この GWT.getModuleBaseURL()で返ってくるはGWT ModuleのBaseURLで、これがGWT1.6からProject名を小文字にしたディレクトリーの下に移っています。よって、それにあわせるために<servlet-mapping>の<url-pattern>にもこのPathを追加します。Project名がMyApplication2で元のURLが/gwtの場合

        <url-pattern>/gwt</url-pattern> ←1.5以前

             ↓

        <url-pattern>/myapplication2/gwt</url-pattern> ←1.6の場合

というように変更します。

さらにアプリケーションで必要なjarファイルをwar/WEB-INF/libにコピーします。これらのjarファイルは、プロジェクトのプロパティ-Java Build Path-LibrariesのタブでJarの追加ボタンを押し、プロジェクトのクラスパスに追加します。

ただし、ここで、元々war/WEB-INF/libに入っている以下のjarファイルに関してはプロジェクトのクラスパスに追加する必要はない。

appengine-api-1.0-sdk-1.2.0.jar
datanucleus-appengine-1.0.0.final.jar
datanucleus-core-1.1.0.jar
datanucleus-jpa-1.1.0.jar
geronimo-jpa_3.0_spec-1.1.1.jar
geronimo-jta_1.1_spec-1.1.1.jar
gwt-servlet.jar
jdo2-api-2.3-SNAPSHOT.jar


Deploy用のWarファイルの作成

GWT1.6よりwarディレクトリーの下がWarファイルの解凍イメージの構成になっているので、このディレクトリーを圧縮するだけでWarができます。以下がWarを作成するAntのbuild.xmlの内容です。

<?xml version="1.0" encoding="Shift_JIS"?>
<project name="project" default="dist" basedir=".">

  <!-- warファイルの設定 -->
  <property name="war.home" value="war" />
  <property name="web-app.name" value="nwmaintGXT2" />
  <property name="dest.dir" value="." />

  <!-- jarタスクによってwarファイルを作成 -->
  <target name="dist" >
    <jar destfile="${dest.dir}/${web-app.name}.war"
         basedir="${war.home}" />
  </target>
</project>

以上でとりあえず完了です。また、その他で私が遭遇した問題点と対処方法を下に書いておきます。


java.security.AccessControlExceptionが出る場合

Google App Engineにデプロイしないのであれば、プロジェクトのプロパティ-Google-App Engioneを開き、Use Google App Engineのチェックを外せばOK

Gwt16app


コンパイル時に[ERROR] Module has no entry points definedとなる

inheritsしているModuleにentry pointがなく、それをentry pointとしてコンパイルしようとしているため。

プロジェクトのプロパティ-Google-Web Toolkitを開きEntry Point Modulesの中から、本来のEntry Point以外のModuleをremoveする。

Gwt16ep


コンパイルするとjava.lang.StackOverflowErrorとなる

Java VMのスタック領域を広げたいところだが、EclipseのPluginへの指定方法が不明。しかたがないので、Hosted BrowserのVM argumentsに-Xss1024kを指定して、Hosted BrowserのCompile/Browseボタンでコンパイルする。

Gwt16hosted


« GXT (Ext Gwt)のMVCフレームワーク | トップページ | GXT(Ext Gwt)2.0移行上の考慮点 »

GoogoleWebToolKit」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1482716/39211816

この記事へのトラックバック一覧です: GWT 1.6の環境設定:

« GXT (Ext Gwt)のMVCフレームワーク | トップページ | GXT(Ext Gwt)2.0移行上の考慮点 »