nocache.jsが見つからない
GWTアプリケーションを作成する際にEclipseプラグインを使ってウィザードから一気に作る場合は問題ないのだが、モジュール作成 → エントリポイントクラス作成 → HTMLページ作成 と順を追ってアプリケーション要素を追加した後に実行すると、以下のエラーが出る。
実行時ログ
[WARN] 404 - GET /.nocache.js (127.0.0.1) 1397 bytes Request headers Host: 127.0.0.1:8888 Connection: keep-alive User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/53 4.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16 Accept: */* Accept-Encoding: gzip,deflate,sdch Accept-Language: ja,en-US;q=0.8,en;q=0.6 Accept-Charset: UTF-8,*;q=0.5 Referer: http://127.0.0.1:8888/AddressBook.html?gwt.codesvr=127.0.0.1:9997 Response headers Content-Type: text/html; charset=iso-8859-1 Content-Length: 1397
作ったHTMLページ中、nocache.jsのパスにモジュールへのパスが反映されないから。以下のように修正することでエラーが消える。
AddressBook.html (抜粋)
<script type="text/javascript" language="javascript" src="net.kazzz.AddressBook/net.kazzz.AddressBook.nocache.js"></script>
また、以前に説明したがgwt.xml中でrename-to属性を使ってモジュール名に別名をつけても良い。(ウィザードで作ったモジュールは全てそうなっている)
AddressBook.gwt.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.2.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.2.0/distro-source/core/src/gwt-module.dtd"> <module rename-to="addressbook"> <inherits name="com.google.gwt.user.User" /> <source path="client" /> <entry-point class="net.kazzz.client.AddressBook" /> </module>
ただし、この場合はモジュールの作成しなおしが必要なので、GWTコンパイルし直した上でAddressBook.htmlを修正する必要がある。
AddressBook.html (抜粋)
<script type="text/javascript" language="javascript" src="addressbook/addressbook.nocache.js"></script>