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コピー先」を指定して回避
ひぇー、しんどい
javaEEのglassFish って、こんなに効率悪いの?苦労するの?ver3.1の問題だけなのか、v4だと解消されるのかは不明。