web-dev-qa-db-ja.com

「ホットコード置換」が機能しない-EclipseはJBossのコードを変更しません

現在、EclipseGalileoおよびJBoss4.2.3で「ホットコード置換」が機能しないという問題が発生しています。

他のアプリケーションの中で、ローカルのJBossでexploded Java WARを実行しています。ビルド元のプロジェクトはMavenによって管理されています。Mavenゴールwar:explodedを使用してプロジェクトをビルドしてからビルドします。 ANTスクリプトを使用してそのディレクトリをJBossにコピーします。

アプリケーションを実行してコードの任意の場所にブレークポイントを設定すると、Eclipseはデバッグモードでその行で適切に停止します。しかし、ソースファイルに変更を加えて保存する場合、Eclipseはこの変更をJBossに適用しません。たとえば、通常のコード行をコメントにすると、デバッガーはこのコメントを通常のJavaコードであるかのようにステップオーバーします。または、行を削除すると、デバッガーは次のようになります。ファイルと同期しておらず、括弧のステップオーバーを開始します。

しかし、「ホットコード置換エラー」メッセージも表示されません。 Eclipseは変更をソースファイルに適用しているように見えますが、JBossには適用していません。

ホットコード置換を機能させるためにオンにする必要がある特別な設定はありますか?または、アプリケーションをビルドしてJBossにデプロイする方法に間違いはありますか?

18
user321068

私はJBossを使用していませんでしたが、2つの提案があります。

  1. 起動構成を使用してEclipseでアプリケーションを実行する場合

    「プロジェクト」-「自動ビルド」フラグは有効になっていますか?そうでない場合、コードはコンパイルされず、実行時に無視されます。

  2. リモートモードでアプリケーションをデバッグする場合、コードを変更することはできませんが、パラメーターの値を変更することはできます。 (おもう)

42
Markus Lausberg

MavenとEclipseのプロジェクトで問題が発生しました。エラーは表示されませんでしたが、ホットコードの置換は機能していませんでした。 「自動ビルド」をチェックする必要があると読みました。これを確認しましたが、まだ機能しませんでした。ビルドパスの他のプロジェクトでエラーが発生しました。それが間違いだったと思います。調べてみると、「ビルドパスエラー時にビルドを中止する」のチェックを外さなければならないことがわかりました。以下のリンクで詳細を説明しました。

9
user513365

最初のチェックは自動的にプロジェクト/ビルドです。

アプリケーションサーバーの展開構成を確認する必要がある場合もあります。

例えば。 JBossの場合、Eclipseの[サーバー]ビューでサーバーをダブルクリックすると、2つのチェックボックスがある[デプロイメントスキャナー]セクションがあります。

  • 不足しているデプロイメントスキャナーを追加する
  • シャットダウンする前に、追加されたデプロイメントスキャナーを削除します

https://docs.jboss.org/author/display/AS7/Deployment+Scanner+configurationJBoss AS/Deployment Scanner設定

最近Eclipse2019-06でこの問題が発生し、[設定]-> [Java]-> [デバッグ]-> [ホットコード置換]グループの[コンパイルエラーを含むクラスファイルを置換する]のオプションをオフにする必要があることがわかりました。そこにある他のすべてのオプションがチェックされました。それを行う前に、「ホットコードの置換に失敗しました-削除メソッドが実装されていません」を取得していましたが、System.out.println呼び出しをお尻に変更しただけです。 (同じデバッグセッションで)そのオプションを変更するとすぐに、それは私のために働き始めました。

0
callmejoc