サーブレットが反映されない事件 | sola's note

sola's note

日ごろのメモを書いていきます。何か新しいものを作るために。

ダラダラ調査。
結論は最後の5行くらい。
元気な人は最初から見て下さいw

Google App Engine for JavaでサーブレットとかJSPを扱う時のこと。
Webアプリケーションの動作確認と開発を並行して行うと
JSPの更新は上書きだけでも実行環境に即反映(ブラウザの再読み込みは必要)されるのだけど、


サーブレットはぜんっぜん反映されない。


正確に検証したわけではないけど、

されない。

何故か。
いや、もちろんブラウザの再読み込みだけでされるとは思ってない。

サーブレット更新後、Webアプリケーションを停止して実行しても

されない。

意味もなくプロジェクトをクリーンしても

されない。

しかたねーなって思いつつもEclipseを再起動してからWebアプリケーションを実行させると


される。


お~!!!

…じゃねーし!
それじゃ意味ないよGoogle先生。


これじゃ進まないって事で調べてみると、

何か説明しているページを発見。
趣旨は違うんだけど、補足で書いてある
(http://code.google.com/intl/ja/appengine/docs/java/gettingstarted/usingusers.html)

ちょうどユーザーの使用って項目の、
ソースが書いてあるちょい下かな。

(以下引用)
Eclipse を使用し、開発サーバーをデバッガ内で実行している場合は、このファイルに変更を加えて保存すると、新しいコードが自動的にコンパイルされて実行中のサーバーに挿入されます。クラス、JSP、静的ファイル、および appengine-web.xml に加えた変更は、実行中のサーバーにすぐに反映されます。再起動は必要ありません。web.xml などの設定ファイルを変更した場合は、変更を反映するためにサーバーを停止して起動する必要があります。
(引用ここまで)

ん。


嘘でしょ?w

さらに調べると、似たような事例で
複数のサーバーが立ちあがってたりすると、動作がおかしくなる事もあるそう。

確認してみたけど

サーバ一つしか立ちあがってないよorz

でも待て。
よく考えてみたら、反映されてないの何だのを試したのは1週間くらい前。
そこから反映されていないのを見るのが嫌だったから


普通に毎回Eclipse再起動してたな。


ということで、Webアプリケーションの停止→実行で反映されるか試してみた。



まあ。



(反映)されたよねorz

結論。
JSPとかHTML
→保存してリロードすればWebアプリ実行中でも反映される。

サーブレットとかxml
→Webアプリ停止して実行すれば反映される。

って事でした。