1

JBoss 6 を起動すると、すべての jar ファイルが tmp/vfs/automountXXX フォルダーの WEB-INF/lib から解凍されます。たとえば、jackrabbit-server.war にはライブラリ asm-3.1.jar が含まれており、tmp フォルダーにはファイルを含む次のフォルダーが表示されます。

asm-3.1.jar-83dc35ead0d41d41/asm-3.1.jar
asm-3.1.jar-2a48f1c13ec7f25d/contents/"unpacked asm-3.1.jar"

my.ear/lib からファイルを取得せず、WEB-INF/lib のみを取得します...なぜそうなのですか? そして、それを防ぐ方法はありますか?アプリケーションサーバーの起動(および停止)が遅くなるだけで、開発ではそれほど快適ではありません...ところで。war to ear 構造をそのように再パックすると、同じ作業アプリケーションが得られ、アプリケーションサーバーの起動中に 1 分節約できました... 1 分で十分です...開発モードで再パックせずに、より簡単な方法があることを願っています。

それがJavaEE 6仕様とejb-jarに何らかの形で関連している場合、現在はWEB-INF/libに配置できるため、warファイルにそのようなライブラリはありません...

更新: 実際には、jackrabbit-server.war を含む jackrabbit-server.ear に jackrabbit-server.war を再パックし、そのすべてのライブラリを jackrabbit-server.ear/lib に移動すると、tmp に 2 つのフォルダーが表示されます。

asm-3.1.jar-215a36131ebb088e/asm-3.1.jar
asm-3.1.jar-14695f157664f00/contents/

ただし、この場合、最後のフォルダーは空です。そのため、引き続き 2 つのフォルダーが作成されますが、ライブラリは解凍されません。また、展開展開を使用しているため、質問はjarファイルのみであり、ear/warの解凍ではありません。

4

2 に答える 2

1

同じ場所ではなく、EARも開梱します。あなたは彼らが開梱される場​​所を見つけるために周りを探し回らなければならないでしょう、しかし彼らはそこにいます。

これはパフォーマンス上の理由から行われます。そうでない場合は、ネストされたZIPファイルを繰り返し処理して必要なものを探す必要があるため、クラスの読み込みは非常に遅くなります。

したがって、開梱すると速度が低下するように感じるかもしれませんが、実際には処理が速くなります。

于 2011-01-05T08:45:19.313 に答える
0

JBoss AS Forum での議論によると、これはバグである可能性があります。そして、今すぐ修正/回避/構成するための回避策はありません。

私が得た唯一のアイデアは、アプリケーションを再パックすることでした: EAR 内でライブラリを WAR の WEB-INF\lib から EAR\lib に移動し (ストラットのみが WAR に残されました。そうしないと機能しません)、別の WAR アプリケーションを作成しました。 EAR とそのすべてのライブラリとして、EAR\lib に移動できます。開発モードでは、この構造を簡単に使用でき、アプリケーションサーバーを起動するのに 2 分以上節約できます。これはかなりの時間です...現在、JBoss は起動に 1:50 分かかります。以前は 4 分でした...

于 2011-01-08T18:25:44.637 に答える