2011-10-28 24 views
0

私はJavaアプリケーションを持っています。私が持っているのは、クラスファイルのセットです。 1つのクラスファイルを新しいクラスファイルに置き換えることができます。古いクラスのファイルを新しいクラスのファイルに置き換えて、tomcatをrestrtingすることは変更を反映していません。これどうやってするの?私はそれが推奨された方法ではないことを知っていますが、私が持っているのは新しいクラスファイルの1つだけです。tomcatのクラスファイルを置き換えて変更を反映する方法は?

+0

再起動後に「変更を反映しない」場合は、変更を加えませんでした。あなたのwebappが 'war'ファイルに入っていて、起動時に再デプロイされていることがわかりました。 –

+0

どうすればそれを避けることができますか? – user811433

+0

Eclipse Kepler Dynamic WebプロジェクトとTomcat 7.0をワークスペースサーバーとして使用して同じ問題が発生しました。すべてのプロジェクトの問題を解決し、Tomcatサーバーを右クリックし、Cleanを選択してからPublishをクリックして修正しました。 – BrownsFan

答えて

1

私はこれまでに説明した方法でこれを行いました。Tomcatは、再起動後に変更を反映しました。

アプリケーションのファイルが複数の場所にあり、正しい展開でクラスファイルを置き換えていない可能性がありますか? Tomcatがファイルの展開されたフォルダに置き換えようとしているWARを自動展開しているかどうか確認してください。アプリがwebapps以外に展開されている場合は、<Context>がそのドキュメントベースを指している場所を再度確認してください。

+0

tomcat stratupにwarファイルを再デプロイすることを避けるにはどうすればよいですか? – user811433

+1

私は100%は確信していませんが、TomcatがWARと同じ名前のフォルダを見つけたら、そのフォルダが展開されたWARだとみなし、再展開しないと思います。たとえば、 'tomcat/webapps/myApp.war'と展開されたフォルダ' tomcat/webapps/myApp'があるとしましょう。 'tomcat/webapps/myApp/WEB-INF/classes/path/to/file.class'の' .class'ファイルを置き換えることができるはずです。Tomcatは再起動時にこれらの変更を選択する必要があります。私はこれを何度もやったことがありますが、それはあなたが期待している通りに動作するので、間違ったファイルを置き換える必要があります。 –

+0

私はこれを二重にチェックしました。私は、正しい場所に正しいファイルを置き換えました。しかし、風袋はそれを拾っていません。 – user811433

1

Tomcatを設定して、Webアプリケーションを「再読み込み可能」にすることができます。これを行うには、reloadable=trueをwebappの<Context>要素に追加します。

Catalinaに、/WEB-INF/classes//WEB-INF/libのクラスを監視し、変更が検出された場合、自動的にWebアプリケーションを再読み込みするように設定する場合は、trueに設定します。ただし、WebアプリケーションManagerを使用して、必要に応じてデプロイされたアプリケーションのリロードをトリガーすることができます。

+0

彼はすでに彼がtomcatを再起動したと述べています。 –

+0

正しいクラスファイルが置き換えられない可能性があります。 –

+0

これは、特定のクラスファイルだけを入れ替えるだけで、アプリケーション全体をリロードします。 – Madeyedexter

関連する問題