Hi all,
When I create a SoapFault in my WebServices running in WebLogic 9.2 I am
getting "NoSuchMethodError" exception. The same code works fine in JBoss.
I tried using all possible "addFault()" methods but it give me the same
exception. Am I missing some JARs?
Here's the code to create SoapFault:
public static SOAPMessage processException(Throwable th)
{
String errorcode = "GENERAL1122";
String message = th.getMessage();
String nsURI = "http://schemas.mysite.com/2007/test/testFaultType";
SOAPMessage faultMessage = null;
try
{
MessageFactory factory = MessageFactory.newInstance();
faultMessage = factory.createMessage();
SOAPBody soapBody = faultMessage.getSOAPBody();
//SOAPFault soapFault = soapBody.addFault();
QName faultCode = new QName(nsURI, errorcode, "ns");
SOAPFault soapFault = soapBody.addFault(faultCode,"P6wsFault");
Detail detail = soapFault.addDetail();
QName qName = new QName(nsURI, "IntegrationFault", "ns");
DetailEntry detailEntry = detail.addDetailEntry(qName);
qName = new QName(nsURI, "ErrorCode", "ns");
SOAPElement errorElement = detailEntry.addChildElement(qName);
errorElement.setTextContent(errorcode);
qName = new QName(nsURI, "ErrorDescription", "ns";
SOAPElement errorMessage = detailEntry.addChildElement(qName);
errorMessage.setTextContent(message);
}
catch (SOAPException e)
{
e.printStackTrace();
}
return faultMessage;
}
Here's the exception appear on WL console:
Apr 8, 2008 1:15:13 PM org.apache.cxf.phase.PhaseInterceptorChain
doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault:
javax.xml.soap.SOAPBody.addFault(Ljavax/xml/namespace/QName;Ljava/lang/String;)Ljavax/xml/soap/SOAPFault;
at
org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:107)
at
org.apache.cxf.jaxws.JAXWSMethodInvoker.createFault(JAXWSMethodInvoker.java:76)
at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:95)
at
org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:100)
at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:68)
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:56)
at
org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:92)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:73)
at
org.apache.cxf.transport.servlet.ServletDestination.doMessage(ServletDestination.java:79)
at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:256)
at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
at
org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:170)
at
org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:148)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at
weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
at
weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
at
weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at
weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3214)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at
weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1983)
at
weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1890)
at
weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1344)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
Caused by: java.lang.NoSuchMethodError:
javax.xml.soap.SOAPBody.addFault(Ljavax/xml/namespace/QName;Ljava/lang/String;)Ljavax/xml/soap/SOAPFault;
at
com.primavera.ws.common.ExceptionHandler.processException(ExceptionHandler.java:111)
at
com.primavera.ws.jaxws.provider.ProviderBase.invokeBase(ProviderBase.java:149)
at
com.primavera.ws.jaxws.provider.generated.ActivityProvider.invoke(ActivityProvider.java:29)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:124)
at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:82)
... 26 more
--
View this message in context:
http://www.nabble.com/NoSuchMethodError%3A--When-creating-SoapFault-in-WebLogic-9.2-tp16569056p16569056.html
Sent from the cxf-user mailing list archive at Nabble.com.