Tôi đã sử dụng mã tạo mã Apache CXF wsdl2java để gọi các phương thức từ một dịch vụ web trong một thời gian, cho đến nay vẫn hoạt động tốt .. Vấn đề tôi gặp phải là khi webservice (thực hiện chỉ xuống hành lang từ tôi) cách hợp pháp ném một ngoại lệ xà phòng, CXF đi kèm với thông báo lỗi sau:Bắt ngoại lệ webservice với CXF: NoClassDefFoundError: SOAPFaultBuilder
Could not initialize class com.sun.xml.internal.ws.fault.SOAPFaultBuilder
tôi đang sử dụng Ubuntu 9,04, OpenJDK (IcedTea6 1.4.1) 6b14- 1.1.1-0ubuntu11, Maven2 và CXF 2.2.3. Tôi hiện đang ở một mất mát về làm thế nào để giải quyết vấn đề này, như mã và thiết lập tôi đang sử dụng có vẻ trivially đơn giản .. Bất cứ ai có thể chỉ cho tôi đi đúng hướng ở đây? Hãy cho tôi biết nếu tôi có thể gửi thêm bất kỳ chi tiết ..
Đây là toàn bộ stacktrace trả về:
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)
Có mục nhập "Tôi có thể chạy trong Java6" trong CXSFFAQ, bạn đã kiểm tra điều đó chưa? http://cxf.apache.org/faq.html#FAQ-FrequentlyAskedQuestions – skaffman
Hmm, cảm ơn. Tôi đã bỏ lỡ lưu ý đó, và bây giờ đã thêm com.sun.xml.bind jaxb-impl & jaxb-xjc vào maven .. Nhưng cho đến nay không có may mắn/thay đổi .. Tôi sẽ làm việc trong này một số chi tiết .. – Tim
Không may mắn có vẻ như: vẫn là cùng một stacktrace .. Có bất cứ điều gì tôi cần phải loại trừ bằng cách sử dụng Maven có lẽ? – Tim