1

cxf を使用して作成された Web サービス クライアントがあります。日食から実行すると、エラーは発生しません。しかし、ファイルから jar を作成して cmd prompt から実行すると、 NoclassDef 例外または ClassNot found 例外が発生します。クラスパス、Javaホームを正しく設定しました。

1.例外

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

2.例外

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/cxf/databinding/DataBinding
Caused by: java.lang.ClassNotFoundException: org.apache.cxf.databinding.DataBinding
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)

Web サービスは C# wcf にあり、クライアントは JAXBinding 要素なしで作成されました。どんな助けでも大歓迎です。

ありがとう、プリヤ.R

4

1 に答える 1

1

これは、典型的かつ簡単に解決できるクラスパスの問題です。クラスパスに cxf ライブラリ (-ies) がありません。次のようにアプリケーションを起動します。

java -cp <youJar.jar>;<cxf.jar>[;<another-cxf.jar>;...] my.pkg.Application

メインクラスの名前-cpとパラメーターの値を、jar のパスと名前、およびアプリケーションの実行に必要な他のすべてのライブラリに置き換える必要があります。

Eclipse から機能する理由: Eclipse では、ビルド パスを正しく設定しましたが、このビルド パスはエクスポートされず、jar に追加されません。

于 2010-11-08T07:31:55.480 に答える