2012-02-29 16 views
2

Jboss Webサーバで実行されているWebアプリケーションでjava bonjourライブラリ(dns_sd.jar)を使用しています。Javaエラーネイティブライブラリがすでに別のクラスローダにロードされています

サーブレットを起動すると、サーブレットはネットワーク上のすべてのリソースをbonjourで見つけてユーザーに返します。初めてのすべてが素晴らしい実行されますが、私は、Webアプリケーションを再デプロイするとき、私は得る:

ます。java.lang.UnsatisfiedLinkError:ネイティブライブラリC:すでに私はすでに試した別のクラスローダ

にロードされた\ WINDOWS \ System32に\のjdns_sd.dllを.dllと何かが削除されます。

ウェブアプリケーションで.jarのlibを使用していると、.dllを参照するのはなぜですか?

誰でもこれを修正する方法はありますか?

答えて

0

再デプロイする前にアンデプロイします。 dllファイルを削除する必要はありません。あなたのエラーにはまったく関連していません。javaとjboss.theのエラーです。再デプロイするときに、あなたがロードしたライブラリをアンロードできませんあなたがライブラリをロードする前に、ライブラリがロードされているかどうかをチェックすることをお勧めします。すでにロードされている場合は、ライブラリをロードしないでください。

+0

多くのご協力ありがとうございました...しかし、私は展開をやり直して再度展開しようとしましたが、サーバを再起動するだけです...必要な他のアプリケーションを展開するのにかかる時間を考えるとかなり苦しいです。 ライブラリが既にJava関数内で実行されている場合、ライブラリをアンロードすることはありますか?私はbonjourにそれを再びロードしないように伝える方法を知らないので。 –

+1

私は完全な答えを得ていませんでした...少なくとも確認を得ました...解決策ではありません –

+0

まだ解決策はありますか? – v4r

0

JBoss 7を使用している場合は、DLLを使用するjarファイルをJBossモジュールに移動してみてください。 JBossを再起動してモジュールを起動します。 MANIFEST.MFファイルに「依存関係:theNameYouGaveIt」が含まれるように変更します。

ここで、 "theNameYouGaveIt"は、モジュールの "yourModule/main/module.xml"ファイルで選択した名前です。

こうして、JBossはライブラリを何度も何度もリロードしません。その後、.earや.warの展開と再展開を繰り返します。

関連する問題