You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by stevewu <st...@primavera.com> on 2008/04/08 19:42:31 UTC

NoSuchMethodError: When creating SoapFault in WebLogic 9.2

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.


Re: NoSuchMethodError: When creating SoapFault in WebLogic 9.2

Posted by Daniel Kulp <dk...@apache.org>.
 

Most likely, the SAAJ jar that is being picked up by WebLogic is an SAAJ 
1.2 version instead of a 1.3 version that we need.   My gut feeling is 
that weblogic includes an old version.   Not sure what the workaround is 
(I'm not familliar with weblogic), but that may be something to look 
for. 

Dan



On Tuesday 08 April 2008, stevewu wrote:
> 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(AbstractInv
>oker.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(ServiceInvo
>kerInterceptor.java:56) at
> org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecut
>or.java:37) at
> org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(Ser
>viceInvokerInterceptor.java:92) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercepto
>rChain.java:207) at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitia
>tionObserver.java:73) at
> org.apache.cxf.transport.servlet.ServletDestination.doMessage(ServletD
>estination.java:79) at
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(S
>ervletController.java:256) at
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletContr
>oller.java:160) at
> org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXF
>Servlet.java:170) at
> org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXF
>Servlet.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(StubSecurit
>yHelper.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(Authenticated
>Subject.java:321) at
> weblogic.security.service.SecurityManager.runAs(SecurityManager.java:1
>21) at
> weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppSe
>rvletContext.java:1983) at
> weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletCo
>ntext.java:1890) at
> weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.ja
>va: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(ExceptionHan
>dler.java:111) at
> com.primavera.ws.jaxws.provider.ProviderBase.invokeBase(ProviderBase.j
>ava:149) at
> com.primavera.ws.jaxws.provider.generated.ActivityProvider.invoke(Acti
>vityProvider.java:29) at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.j
>ava:39) at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccess
>orImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585)
>         at
> org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(Abstr
>actInvoker.java:124) at
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.
>java:82) ... 26 more



-- 
J. Daniel Kulp
Principal Engineer, IONA
dkulp@apache.org
http://www.dankulp.com/blog