اصطياد Webservice استثناء مع CXF: NOCLASSDEFFUNDRROR: SOAPFAULTBUILDER

StackOverflow https://stackoverflow.com/questions/1494738

  •  18-09-2019
  •  | 
  •  

سؤال

لقد كنت أستخدم اباتشي CXF WSDL2JAVA الناتج عن الأساليب من موقع Webservice لبعض الوقت الآن، والذي يعمل بشكل جيد حتى الآن. يلقي بشكل شرعي استثناء الصابون، يأتي CXF رسالة الخطأ التالية:

لا يمكن تهيئة الفئة COM.SUN.XML.internal.ws.fault.soapfaultbuilder

أنا أستخدم Ubuntu 9.04، OpenJDK (ICEDTEA6 1.4.1) 6B14-1.1.1-0ubuntu11، Maven2 و CXF 2.2.3. أنا حاليا في خسارة حول كيفية حل هذه المشكلة، حيث يبدو الكود والإعداد الذي أستخدمه بسيطة تافهة .. أي شخص قادر على توجيهي في الاتجاه الصحيح هنا؟ اسمحوا لي أن أعرف إذا كان بإمكاني نشر أي تفاصيل أخرى ..

هذا هو StackTrace الكامل عاد:

java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.internal.ws.fault.SOAPFaultBuilder
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:107)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
    at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
    at $Proxy36.downloadPDB(Unknown Source)
    at path.to.my.code.downloadInvalidFileID(SingleMethodTest.java:64)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
    at org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
    at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
    at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
    at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
    at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
    at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
    at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
    at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
    at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
    at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
    at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
    at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
    at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
    at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
    at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:338)
    at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:997)
هل كانت مفيدة؟

المحلول

هناك نوعان من الأشياء المثيرة للاهتمام حول هذا التتبع المكدس:

1) تواجه مشاكل في العثور على تنفيذ ساج. ربما تضيف Saaj-Implit.jar إلى ClassPath قد يحل ذلك.

2) لا يستخدم CXF على الإطلاق. إنها تستخدم التنفيذ المرجعي Sun Jax-WS الذي تم بناؤه في JRE. وبالتالي، يبدو أن الجرار CXF لا يتم التقاطها على الإطلاق.

نصائح أخرى

كان له مشكلة مماثلة عندما نتحول من النمل إلى مافن. نحن نستخدم الشمس JDK 1.6U20.

لقد فاتنا هذه المكتبات في الحرب المجمعة في المنافين:

أدوات Jaxws-API Jaxws-RT Jaxws

بعد إضافتها جميعا يعمل كما كان قد عملت من قبل. امل ان يساعد هذا احد!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top