- - PR -
JBOSSのホットデプロイ機能について【解決】
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-12-10 11:30
jboss3.2.6にてホットデプロイ機能が効きません。
開発環境
セッションステートレスビーンを作成して確認しました。
この部分を" version 2", "version 3", ... と変更してhelloEJB.jarを その都度 $JBOSS_HOME/server/defalut/deployにコピーすると JBOSSのコンソールに下記のリロード完了メッセージが表示されて リロードされた事が確認できるのですが
テスト用クライアントからEJBのメソッドを呼び出す(getMessage("hello")と ソースコードの修正結果が反映されませんでした。
念のため $JBOSS_HOME/server/defalut/deploy/helloEJB.jarと $JBOSS_HOME/server/default/tmp/deploy/tmp*helloEJB.jarから HelloBean.classを解凍してバイナリエディタで"version"文字列を 確認して、2回目の.classには"version 2"が、3回目の.classには "version 3"が存在することを確認しました。 当然JBOSSを再起動するとソースコードの修正結果が正しく反映されます。 この結果から疑問が湧くのですが " version 1"が埋め込まれているHelloBean.classを含んでいるhelloEJB.jarが どこにも存在していないんですよね。 メモリ上にロードされたhelloEJB.jarで動き続けているということでしょうか? コンソールのリロード完了メッセージは間違っているのでしょうか? JBOSSはjboss-3.2.6.tar.bz2を解凍しただけで設定等は何も行っていません。 テストはeclipse上から行ってもコマンドライン上から行っても同じ結果になります。 EJBのホットデプロイが魅力でJBOSSをインストールしたので、なんとか再起動 しないでデプロイできるようにしたいです。 _________________ [ メッセージ編集済み 編集者: vash 編集日時 2004-12-10 15:26 ] | ||||||||||||||||
|
投稿日時: 2004-12-10 11:38
当該クラスがシステムクラスパスに通っているということはないでしょうか?
システムクラスパスに通っているクラスはアンロードできませんので再デプロイしても変更内容は反映されません。 起動スクリプトを確認してみましょう。 >EJBのホットデプロイが魅力でJBOSSをインストールしたので、なんとか再起動 ホットデプロイは今時のサーバならどれでも出来ると思いますよ。 日本語マニュアルやサポートの充実している WebSphere や WebLogic も視野にいれてみる価値はあるとおもいます。 | ||||||||||||||||
|
投稿日時: 2004-12-10 11:59
インギさん、レスありがとうございます。
システムクラスパスは空になっています。 $ echo $CLASSPATH JBOSSのrun.shの中身も確認しましたが、$JBOSS_HOME/server/default/deploy/には クラスパスは通っていませんでした。# 当たり前ですが _________________ | ||||||||||||||||
|
投稿日時: 2004-12-10 13:55
うーん、なんででしょうね。
jer/lib/EXT 以下にクラスがおいてあるって事はないですよね? | ||||||||||||||||
|
投稿日時: 2004-12-10 14:36
なかったです。念のためjar tvf で各jarの中身もチェックしました。
ぐーぐる等で「JBOSS ホットデプロイ」で検索してますが なかなか欲しい情報がヒットしません。 ふつうはハマる所じゃないんでしょうね。トホホ ![]() | ||||||||||||||||
|
投稿日時: 2004-12-10 15:12
インギさん解決しましたー!やっぱり私のポカミスでした。![]()
これが微妙に間違ってました。 helloEJB.jarの動作確認用に作成したhelloWEB.jarなる隠し球がありまして それのWEB-INF/classesにHelloBean.classが存在していました。 再デプロイしているのはhelloEJB.jarなので、追跡する時にhelloEJB.jarばかりに 目が行ってましたが、 http://waimangu.typepad.com/living_in_nz/java/ 上記の「April 23, 2004 JBossのクラスローダー」の
上記のコメントを読んで「もしや!」と気づきました。 helloWEB.jarをアンデプロイしてやれば、helloEJB.jarのホットデプロイ効きまくりです。 お騒がせしてすみませんでした。アドバイスありがとうございました。 ![]() | ||||||||||||||||
|
投稿日時: 2004-12-10 15:35
おめでとうございます!
やはりデプロイメント関連のトラブルシューティングにはその AP サーバのクラスローダの構造を把握するのが重要ですね。 |
1