1

これは本当に私を夢中にさせています。私が何をしても、Mirth (1.8.2) は私の JAR ファイルの古いバージョンを実行しているようです。次のようなさまざまな兆候があるため、私は知っています。

  • どの関数も呼び出せません
  • ログに記録された情報がログに表示されない
  • 変更されたログ メッセージは、ログ ファイルでは変更されません。
  • かつてコードで作成されて書き込まれたが、コードに触れられなくなったファイルは、まだ作成されて書き込まれています

この作業を行うために考えられるすべてのことを試しました。一時動作していましたが、現在は更新されていないようです。変更を Mirth に統合するプロセスは次のとおりです。

  • Ant スクリプトを実行して JAR ファイルをビルドする
  • JAR ファイルを \lib\custom にコピーします。
  • Mirth サービスを再起動します (Mirth 管理者経由)

再起動を試みました (サービス、Java、コンピューター経由の Mirth サービス) - 役に立ちませんでした。JAR ファイルが正しいことはわかっています。なぜなら、(最新のコードが含まれていることを確認するために) JAR ファイルを逆コンパイルし、(ant でビルドされた JAR のハッシュと比較するために) ハッシュしたためです。ファイルは正しく、コードは存在します。 ; 実行されていないだけです。

私は機知に富んでいます。これはめったに発生しませんが、開発を完全に妨げます。

編集:単体テストを実行すると、適切なファイルが生成され、適切な関数が呼び出され、適切な情報が記録されるため、コードが正しいこともわかっています。マースだけが「わからない」ようです。

私のクラスはとてもシンプルです。単純な 1 つの引数のコンストラクターと、さまざまなデータを返すいくつかのパブリック メソッド。複雑なものはなく、ネストされたクラス/JAR/依存関係もありません。

編集:カスタム JAR ファイルを削除して Mirth を再起動しても、まだコードが実行されています。素晴らしい:/ この質問に報奨金を追加しました。JAR がどこかにキャッシュされているのではないかと思います (彼らは Mirth フォーラムでそれを否定していますが)、そのキャッシュを何らかの方法で消去する必要があります (ただし、なぜ Mirth サービスを再起動しても私の PC がそれを行わないのかは私には理解できません)。

また、Java のすべてのインスタンスを強制終了した (そしてコンピューターを再起動した) ため、JVM が JAR をどこかにキャッシュしている可能性はほとんどありません。

マースを再インストールしてみました。何らかの理由で、最初に管理者を起動したときにカスタム チャネルがありました。そして腹立たしいことに、lib\custom の新しい JAR で更新したにもかかわらず、まだ古い JAR を実行しています。

4

2 に答える 2

1

私はアクションの組み合わせでこれを解決することになりました:

  • Mirth と Java をアンインストールしてから再インストールします。
  • また、1 つ (1 つの JDK と 1 つの JRE) を除いて、すべての Java インストールを削除しました。
  • あなたが私の JAR をコピーしたとき、私は Mirth を止めました。Mirth を停止し、コピーして再起動します。ライブ インストールでコピーしようとしないでください。JVM にロードされているかどうかによって、更新された JAR が取得される場合とされない場合があります。

このステップの組み合わせは機能しているように見えました。これに先立って、私は 3 ~ 4 個の JRE (および 2 個の JDK) をインストールし、Mirth の実行中に JAR をコピーしていました (Windows 7 によると、成功しました)。それは今働いています!

于 2011-01-10T17:58:39.400 に答える
0

Mirth は、単純な古い JVM 上で実行される J2EE アプリケーションです。デバッグするためのオプションがあります。

Eclipse 経由で Mirth Connect を実行するには、こちらの手順に従ってください。次に、JVM クラスパスを確認し、ブレークポイントを設定して、デバッガーを使用できます。

マースは Mule ESB に基づいています。Mule には、クラスをロードする独自の方法があります。あなたはそれを研究することができます。

Mirth が本当に古いバージョンの JAR を使用している場合は、どこかにキャッシュされたバージョンがある可能性があります。または、忘れていた構成変更を行った可能性があります。おそらく、jar 用の新しいディレクトリを追加した可能性があります。(あなたがそれを行う方法がわからない。)

Mule は、MULE_LIB という名前の環境変数に注意を払います。多分それは関連しています。

Mirth Connect 1.8 と Mirth Connect 2.0 では、jar の場所が異なるようです (それぞれ lib/custom と custom-lib)。どのバージョンを使用していますか?

于 2011-01-05T22:05:41.353 に答える