kuniku’s diary

はてなダイアリーから移行(旧 d.hatena.ne.jp/kuniku/)、表示がおかしな箇所はコメントをお願いします。記載されている内容は日付およびバージョンに注意してください。直近1年以上前は古い情報の可能性が高くなります。

glassFish使って開発しているんだけど、html、jsがリアルタイムに更新されない

誰か、知ってる人居ないかな? アプリを再起動しないと修正が反映されない。

状況
Eclipseのplugin(glassfish tools)を使ってる
Eclipseのサーバー・ランタイムに、GlassFish 3.1を設定
Eclipseのプロジェクトのプロパティにある、「プロジェクトファセット」では GlassFish Web Extensions3.1/Java1.7/JavaScript1.0/動的Webモジュール3.0 で設定している。

・実行する時は、「サーバ」タブに、新規サーバを追加して、「サーバー・ランタイム」で設定したものを指定して、Eclipseのプロジェクトを追加して、デプロイさせている。

pluginでEclipseのサーバ起動を行うと、warファイルが作成されて、そのwarファイルがglassfishの、以下のディレクト
「glassfish3\glassfish\domains\domain1\applications\__internal\Warファイルのファイル名ディレクトリ\warファイル」に配備され
「glassfish3\glassfish\domains\domain1\applications」
にwarが展開されて、動いている。
Eclipseのプロジェクト内のhtml/js/cssを修正して、すぐに動作確認しようとしても、保存しただけでは、デプロイ先には反映されない。
pluginは、いったんwarを作成するため、リソースファイルの同期がされないんだろう。


Eclipseのサーバ設定での「公開」は「自動公開しない」にしている。
「リソースの変更時に自動的に公開」に設定すると、warまるごと再デプロイされてしまい、glassfishの停止と起動に時間がかかる(2-3分)ため、ちょっと修正して確認の繰り返しができない。保存した瞬間に、公開処理になってしまい、保存タイミングを調整しないと、公開処理ばかり走ってしまう。

通常? は
Javaファイルで、公開されないのは、Seasar2.4のホットデプロイやSpringのdevToolsなどの対応がないため、目をつむってるんだけど、html/js/cssが繁栄されないのは、非常にもどかしい。

WTP使ってtomcatya
Weblogicでは、jspの修正もサーバ再起動なしで変更されるし、htmlもcssもjsも変更後が認識される。変更後が認識されない時は、大抵がブラウザ側のキャッシュで古いjsを表示しているケース。

回避できるのか?
jRebel使えば解決できんだろうか、・・・・
http://www.effectivetrainings.de/blog/2010/03/25/enabling-jrebel-in-glassfish-v3/
http://zeroturnaround.com/forums/topic/jrebel-does-not-reload-my-classes/
http://zeroturnaround.com/forums/topic/eclipse-luna-plugin-and-glassfish-problem/

NetBeansだとできるの?
http://qiita.com/MT-01/items/b97ecb305952f55ef548
試すか

ひとまず、コピーコマンドで回避
windows
xcopy
robocopy で 「workspaceのコピー元ディレクトリ」を、「GlassFishのdmianコピー先」を指定して回避


ひぇー、しんどい
javaEEglassFish って、こんなに効率悪いの?苦労するの?
ver3.1の問題だけなのか、v4だと解消されるのかは不明。