6

JBoss 4.0.3.SP1_CP04を実行し、Eclipse3.4.1のデバッガーで接続しています。どちらもJDK1.6.0_11を使用しています。

メソッドに小さな変更を加えて(たとえば、ロジックの「+1」を「+2」に変更して)保存すると、すぐに「ホットコード置換に失敗しました」というエラーメッセージダイアログが表示され、「削除」というエラーが表示されます。メソッドが実装されていません」

ホットコード置換失敗ダイアログhttp://img6.imageshack.us/img6/531/hotcodereplacefailedkp6.png

誰かがこれを機能させるための手順を提案できますか?

4

6 に答える 6

2

私はJRebelを使用してきましたが、コードを変更してアプリケーション サーバーを動的に更新する限り、JRebel は命の恩人です。初日に自費で支払いました。(コンパイル/デプロイ/再起動のサイクルは 7 分です)

于 2009-02-11T23:44:56.427 に答える
1
  1. Eclipse でデバッガーを実行する前に、ワークスペース内のすべてのプロジェクトが更新されていることを確認してください (外部ツールを使用してバージョン管理システムから変更を取得した後など、Eclipse の外部でコードが変更された場合に必要です)。
  2. Eclipse の Java ビルド パスでは、ホット スワップしようとしている一部のライブラリ クラスの一部として含めないでください。
  3. Eclipse JRE = JBoss JRE であることを確認します
  4. ホットスワップしようとしているクラスを確認してください。内部クラスはありますか?クラスを内部クラスと交換できないときに問題が発生しますが、他のクラスは問題なく交換されます。
于 2011-06-15T16:08:18.853 に答える
1

その理由は、アセンブリがホット スワップする別のコンパイラを使用できるためです。たとえば、maven でプロジェクトをビルドする場合は、javac を使用しました。ホットスワップを実行しようとすると、etslipse は組み込みのコンパイラ jdt コンパイラを使用します (コンパイラはインストールされた jdk から取得されず、通常の方法では変更できません)。取得されるバイナリ クラスは異なり、jvm はそれらを置き換えることはできません。

于 2012-07-18T13:26:19.053 に答える
0

ホットコードの置換自体が機能しないという問題がありました。「自動的にビルドする」がチェックされていることを確認したり、「ビルドパスエラーが発生したときにビルドを中止する」のチェックを外したりするなど、いくつかの変更を行いました。しかし、私の場合、HCR自体は機能していませんでした。あなたが言ったように私はメッセージを受け取っていませんでした。詳細はこのリンクにあります。 https://sites.google.com/site/javaerrorsandsolutions/home/hot-code-replacement

于 2010-11-19T10:48:31.630 に答える
0

あなたが説明したことはうまくいくはずです。デバッグを有効にするための jboss への jvm 引数は何ですか?

私のものは次のとおりです: -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

于 2009-02-12T14:49:27.110 に答える