- PR -

Struts1.1 クラスリロード みなさんどうやってますか?

1
投稿者投稿内容
ジャンボカレー
会議室デビュー日: 2003/05/26
投稿数: 17
投稿日時: 2003-09-04 19:38
現在Struts1.1/Tomcat4.1.27の開発をしています。
開発作業で頻繁にクラスファイルを更新するのですが、リロードがうまく行きません。
Tomcat付属のmanagerツールを使い、Contextのリロードを試みたのですが下記のようなログが
出力されていました。

サーブレット /hoge がload()例外を投げました。
javax.servlet.ServletException: ラッパがサーブレットクラス
org.apache.struts.action.ActionServlet またはそれが依存するクラスを見つけることができません
〜(省略)〜
----- Root Cause -----
java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet

ActionServletのリロードがうまくゆかないように思うのですが、
いちいちTomcatの再起動をするのは時間がかかるので何とかうまくやりたいのです。
皆さんはどういった方法で、開発してますか?


takasaki
常連さん
会議室デビュー日: 2002/02/14
投稿数: 31
投稿日時: 2003-09-04 20:57
こんにちは。

解決方法ではなくて申しわけないのですが・・・。

ローカルマシンに同じStruts1.1/Tomcat4.1.27で開発を行っていますが、
eclipseを使っています。tomcatを再起動することなく更新は反映されています。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2003-09-05 01:05
私もtakasakiさんと同じく、Eclipse2.1.1とTomcatプラグインを
組み合わせて使ってますが、ソースを保存するとTomcatが自動的
にビルドし直してくれるので、リロードせずに済むことが多いです。
struts-config.xmlやvalidation.xmlを書き換えたときはダメなので、
そのときだけはTomcatの再起動を行ってます。
むし
会議室デビュー日: 2003/09/05
投稿数: 1
投稿日時: 2003-09-05 09:53
ひょっとしてこれが関係あるのでは?

--------------------------------------------------------------------------
[重要] Tomcat 4.1.27 Stable リリースビルドの不具合と緊急パッチの適用方法
不具合の概要
2003年8月始めに正式公開された Tomcat 4.1.27 Stable リリース ですが、そのリリース直後、
 Webアプリケーションの再ロードが失敗する致命的な不具合( Bug 22096 )
の存在が、ユーザによって報告されました。
( なお Tomcat 4.1.18 や 4.1.24 を含む以前のバージョンでは、この問題は発生しません )

この不具合によって、Tomcatコンテナの起動中にクラスファイルの再ロード処理が失敗したり、Tomcat付属のManager画面からWebアプリケーションを再配備できなくなる、といった影響が発生します。

Jakarta Projectではこの問題を解決する緊急のパッチ(4.1.27-hotfix-22096)をすでに作成しており、現在 Tomcat 4.1.27 リリースビルドが配布されている場所 で公開されています。
Tomcat 4.1.27 Stable リリースを利用する場合は、当該パッチを必ず適用してください。

パッチを適用するための手順

4.1.27-hotfix-22096パッチのアーカイブファイル(tar.gz または zip)をダウンロードします。
Tomcat 4.1.27をインストールした場所( → $CATALINA_HOME )にカレントディレクトリを移動します。
当該ディレクトリ上でパッチのアーカイブファイルを解凍します。
"$CATALINA_HOME/server/classes"配下に
 "org/apache/catalina/core/StandardContext.class"
が展開されているかどうかを確認します。
最後にTomcat 4.1.27を再起動してください。
--------------------------------------------------------------------------

ソース
http://www.jajakarta.org/tomcat/

勘違いだったらごめんなさい。

ジャンボカレー
会議室デビュー日: 2003/05/26
投稿数: 17
投稿日時: 2003-09-05 11:12
みなさんありがとうございます。
eclipse + Tomcatだとうまくゆくのですか。情報ありがとうございます。
Tomcatのパッチの件ですが、調べたところちゃんとあたっていました。
なるほどJSPやServletは問題なくリロードできているのですが、
ActionServletだけ失敗しています。
やはりStruts独自の問題なのでしょうか?私自身もう少し情報収集
してみます。
何かわかり次第書き込みます。
その他、「私はこうやって開発している。」という意見がありましたら
よろしくお願いします。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2003-09-05 22:50
参考までに、私はEclipse2.1.1 + Tomcat4.1.24でやってます。
ジャンボカレー
会議室デビュー日: 2003/05/26
投稿数: 17
投稿日時: 2003-09-08 09:48
リロード問題が解決したので報告します。
「むし」さんが指摘してくださったhotfix(StanderdContext.class)の
配置がうまくいってなかったのが原因でした。
私の配置作業ミスによるものです。具体的には
$CATALINA_HOME/server/classes/classes/org/apache/catalina/core/
以下に配置したのが原因です。お騒がせしました。
$CATALINA_HOME/server/classes/org/apache/catalina/core/
に修正したところリロードがうまくゆくようになりました。

基本は「まずは自分を疑え」ですね。。。(笑
以下サイトの「クラスローダ手引き」など参考になりました。
ttp//www.ingrid.org/jajakarta/tomcat/tomcat-4.0/webapps/tomcat-docs-ja
1

スキルアップ/キャリアアップ(JOB@IT)