2

これは一般的なケースであり、多くの人にとって簡単なはずです。

私はappAを持っています。このアプリケーションは、フレームワーク fw1 および fw2 を使用します。

fw1 は、ここで jar から Logger.java を使用します

http://anonsvn.jboss.org/repos/common/common-logging-spi/trunk/src/main/java/org/jboss/logging/

fw2 は、ここで jar から Logger.java を使用します

http://anonsvn.jboss.org/repos/common/jboss-logging/trunk/src/main/java/org/jboss/logging/

Logger.java は互換性がないことに注意してください (つまり、異なるメソッドがあります)。各フレームワークは、Logger.java の独自の選択を使用する必要があります。

このようなアプリケーションを Jboss にデプロイするにはどうすればよいですか? これは私の正確なシナリオではありませんが、誰かがこれを解決する方法を教えてくれれば、それは素晴らしいことです. 私はそこからそれを取ることができます。その理由は、自分の状況を説明しなければならない場合、3 ページかかるからです。

前もって感謝します

4

2 に答える 2

1

あなたの問題に対する一般的な解決策はないと思います。しかし、次のように発見し続けることをお勧めします。

通常、異なるクラス ローダーを使用して fw1 と fw2 を実行する必要があります。これらのフレームワークの初期化を傍受できる場合は、おそらくこれを行うことができます。

もう 1 つの方法は、独自の混合バージョンのLogger. どれくらい複雑かはわかりませんが、おそらくこれは簡単です。たとえば、logger1 には methodwriteLog()があり、Logger2 には method がありprintLog()ます。したがって、元のロガーと同じパッケージに独自のロガーを作成してください。このロガーは、個別のクラス ローダーを使用して呼び出しを最初または 2 番目のバージョンに委任し、両方のメソッドを実装します。

残念ながら、fw1、fw2、およびロガーの具体的な名前なしで、問題を非常に一般的に説明しました。自分で解決策を見つけられない場合は、より具体的な情報を記載した別の質問を送信してみてください。それは役立つかもしれません。

幸運を。

于 2012-09-24T17:25:55.340 に答える
0

どのバージョンのJBossに取り組んでいますか?

JBossは、jboss-deployment-structure.xmlを介して非常にきめ細かいクラスロード処理を提供します

これを使用して、fw1を指定してloggera.javaを使用し、fw2を指定してloggerb.javaを使用できます。

重複する必要はないと思います。jbossのドキュメントでjboss-deployment-structure.xmlについて読むことができます。

お役に立てれば。

于 2012-09-24T19:46:39.283 に答える