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

After upgrade to 3.1.3 web services fail with exception

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.1.3
    • Fix Version/s: 4.5.0
    • Component/s: webservices
    • Labels:
      None
    • Environment:
      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

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

              Dates

              • Created:
                Updated:
                Resolved: