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.

Reply via email to