- - PR -
classファイルの差し替えの方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-03-26 18:06
現在、Javaで作成したWebアプリのバグや仕様変更によるプログラムの修正を行っています。
<環境> java1.5.0_11 Eclipse3.2 Tomcat5.5 Apache2.0.54 それで、Eclipseで修正しコンパイルされたclassファイルのみを差し替えて変更をかけようとしています。しかし、修正したclassファイルのみを差し替えても差し替えた箇所でエラーが出て動きません。 ちなみにwarファイルを作成して展開すると問題なく動きます。 classファイルのみを差し替えることは出来ないのでしょうか。 ご存知の方がいたら教えてください。 | ||||
|
投稿日時: 2007-03-26 18:28
差し替える、というのは、Tomcat稼働中に、classファイルを上書きしたと言うことですか?
その場合は、再起動が必要になるのではないかと。 Tomcat Managerなら、個別のWebアプリごとに再起動がかけられます。 | ||||
|
投稿日時: 2007-03-26 18:37
Edossonさん、ご返答ありがとうございます。
Tomcatは停止して書き換えるような感じになります。 一応、今回もclassファイルの差し替えを行った後に、 Tomcatの再起動をかけてみたのですが駄目でした。 他にはworkフォルダを削除をしてみたり、キャッシュを 削除してみたのですが駄目でした。 | ||||
|
投稿日時: 2007-03-26 18:46
いったんWARファイルを作ったら、デプロイがうまくいくというのは、
WARファイル作成の過程では、ソースからのコンパイルは行わず、 存在しているclassファイルを固めているだけなんでしょうか。 だとしたら、Eclipseが、古いソースをコンパイルして、 classファイルを上書きしているから、とも考えられますけど。 | ||||
|
投稿日時: 2007-03-26 18:49
どんなエラーがでているのでしょうか?
| ||||
|
投稿日時: 2007-03-26 18:50
勘ですが。
何か別の実体をもってるような気がしますね。 真に実行されているのが/WEB-INF/classes/以下のclassファイルなのであれば、 classファイルを差し替えて挙動が変わらないはずがない。 warファイルでのデプロイをされているようなので 古いwarファイルが残ったままになっていて そちら側が動いているという印象を受けます。 そのあたりの挙動はそらんじて仕様を言えるほど詳しくないですが… warファイルが展開されて動くのでしたっけ? webappフォルダ以下にwarファイルがあると自動展開・配備されるんでしたっけ? その辺の挙動の調査をしたら何かわかるかもしれませんね。 | ||||
|
投稿日時: 2007-03-26 18:59
そうですね、Tomcatはwebappにあるwarファイルを勝手に展開したはずです。 私はもう長いことTomcatに触れてないですよ。 今はTomcat以外でも「Oracle Application Server」とか、 フリーのアプリケーションサーバーがあるので。 でも、「Oracle Application Server」はまだVistaで動かないのが難ですが。t | ||||
|
投稿日時: 2007-03-26 19:29
Edosonさん、インギさん、nagiseさん、takuさん、ご返答ありがとうございます。
nagiseさんが書かれた内容をみて、「はっ!?」と我に返りました。 実は、test.warファイルを展開するとtestフォルダが作成されるのですが、 そのtestフォルダのclassesファイル内のファイルを更新した後に test.warファイルを削除していませんでした。 それで、test.warファイルを削除したらエラーが出ることもなく、修正したファイルのみが反映されました。 うまく言葉でお伝えすることができませんが、test.warファイルとtestフォルダが2つあった為におかしな挙動?をしたのではと勝手に自分では解釈しております。 みなさんのアドバイス助かりました。ありがとうございました。 |
1