Uploaded image for project: 'OpenEJB'
  1. OpenEJB
  2. OPENEJB-1397

After upgrade to 3.1.3 web services fail with exception

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.1.3
    • 4.5.0
    • webservices
    • None
    • Windows, Tomcat with OpenEJB embedded

    Description

      After upgrading OpenEJB from 3.1.2 (uses CXF 2.0.9) to OpenEJB 3.1.3 (uses CXF 2.2.10) CXF-based web-services are broken with the following exception on a server side:

      org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging
      WARNING: Interceptor for

      {http://xxxxxx.com/wsdl}

      ProInfoMgmtWebService has thrown exception, unwinding now
      java.lang.NullPointerException
      at org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:961)
      at org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:949)
      at org.apache.cxf.binding.soap.saaj.SAAJInInterceptor.handleMessage(SAAJInInterceptor.java:183)
      at org.apache.cxf.binding.soap.saaj.SAAJInInterceptor.handleMessage(SAAJInInterceptor.java:71)
      at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:244)
      at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:110)
      at org.apache.openejb.server.cxf.HttpDestination.invoke(HttpDestination.java:123)
      at org.apache.openejb.server.cxf.CxfWsContainer.processPOST(CxfWsContainer.java:106)
      at org.apache.openejb.server.cxf.CxfWsContainer.onMessage(CxfWsContainer.java:77)
      at org.apache.openejb.server.webservices.OpenEJBHttpWsRegistry$ClassLoaderHttpListener.onMessage(OpenEJBHttpWsRegistry.java:117)
      at org.apache.openejb.server.httpd.HttpListenerRegistry.onMessage(HttpListenerRegistry.java:43)
      at org.apache.openejb.server.httpd.OpenEJBHttpServer.process(OpenEJBHttpServer.java:176)
      at org.apache.openejb.server.httpd.OpenEJBHttpServer.processRequest(OpenEJBHttpServer.java:132)
      at org.apache.openejb.server.httpd.OpenEJBHttpServer.service(OpenEJBHttpServer.java:78)
      at org.apache.openejb.server.httpd.HttpEjbServer.service(HttpEjbServer.java:61)
      at org.apache.openejb.server.ServicePool$2.run(ServicePool.java:91)
      at org.apache.openejb.server.ServicePool$3.run(ServicePool.java:120)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:619)

      After debugging this with CXF 2.2.10 source we found that SAAJInInterceptor called on each call (from WSS4JInInterceptor interceptor). Calling SAAJInInterceptor by default is apparently new in CXF 2.2.10. When called SAAJInInterceptor attempts to obtain
      SOAPMessage doc = msg.getContent(SOAPMessage.class);
      which is null in our case. This subsequently brings NullPointerException after few steps.

      Attachments

        Activity

          People

            Unassigned Unassigned
            grigory Gregory Kanevsky
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: