2011-03-26 39 views
0

私はJavaのwebservicesで作業しています。ポートを開いてサービスを呼び出した直後に "com.sun.xml.ws.wsdl.parser.InaccessibleWSDLException"をキャッチしようとしています。Tomcatは "InaccessibleWSDLException"クラスを見つけることができません、glassfish can

これは私のdevののGlassFish v2のサーバー上でうまく働いたが、私はTomcatに私のWARファイルをシフトしたときに、私はNoClassDefFoundErrorが得た:

java.lang.NoClassDefFoundError: com/sun/xml/ws/wsdl/parser/InaccessibleWSDLException 

を私はいくつかは、それをGoogleで検索し、JAR jaxws-ことが判明しましたrt.jarは、InaccessibleWSDLExceptionクラスを持っていました。しかし、このJARを私のWARに含めると、より多くのことが分かりました。

このエラーを取り除くために助けていただければ幸いです。

ありがとうございました。

追加情報:

JAXWS-rt.jarのを追加した後、私は関係なく、私はInaccessibleWSDLExceptionかをキャッチするかどうか、全てのサービスでこれを取得する:

java.lang.ClassNotFoundException: com.sun.xml.stream.buffer.XMLStreamBuffer 
+0

さらに何が壊れましたか? – asgs

+0

追加情報をご覧ください。ありがとう。 – Ali

+0

あなたのクラスパスに別の依存関係 'streambuffer-x.xx.jar'がありません。私はGlassfishがこれらの依存関係を自動的に処理していたと推測しています。 – asgs

答えて

1

あなたはすべてのWSDLを追加する必要があります依存関係は、私は彼らが何であるかわからないんだけど、それがあるように、ストリームバッファが見え、瓶はここで見つけることができます:

http://download.java.net/maven/1/com.sun.xml.stream.buffer/jars/

Tomcatはデフォルトでインストールされているので、glassfishで動作します。

+0

さて、Glassfishはこれらのファイルをデフォルトで.. \ glassfish-v2ur2 \ libフォルダにすべて持っています。私はwebservices-rt.jarのコピーを終了し、それは働いた。今は少なくとも。他の依存関係がないことを願っています。もしあれば、私はglassfish-v2ur2 \ lib全体をコピーします。 – Ali

+0

また、jaxws-rt.jarに互換性の問題があったため、ストリームバッファ例外が発生した可能性があります。 webservices-rt.jarにはこのような問題はありません。あなたの答えをありがとう。 – Ali

+0

ストリームバッファの例外は、webservices-rt.jarに含まれていたため、これをコピーしてtomcatが見つけることができたためです。 – Miquel

4

おそらく、あなたがcom.sun.で始まるクラスをインポートしている可能性があります。 Why Developers Should Not Write Programs That Call 'sun' Packages

このクラスはJAX-WS仕様の一部としては記述されていませんので、このクラスはGlassfishのJAX-WS実装の一部です。それは他の実装には存在しそうにないので、コードを移植したい場合は参照しないでください。代わりにWebServiceExceptionをキャッチすることをお勧めします(これは親のタイプと思われます)。

+0

Glassfish-v2ur2 \ libのjarファイルで見つかったので、このクラスはおそらくGlassfish固有のものでした。 'sun'パッケージへの参照を変更するには、すでにデプロイメント段階に入っているので作業が必要な場合がありますが、リンクに感謝します。 – Ali

関連する問題