How to use my own woodstox implementation in JBoss EAP ?

Solution Verified - Updated -

Issue

  • We need to use our own woodstox stax2 and cxf implementation in our appliction. We are packaging cxf-2.6.9.* jars, the woodstox-core-asl-4.2.0.jar and the stax2-api-4.0.0.jar in the application. We exlcuded this via jboss-deployment-structure.xml,
<exclusions>
            <!--  <module name="org.apache.santuario.xmlsec" ></module>-->
            <module name="org.hibernate" ></module>
            <module name="org.apache.xerces"></module>
            <module name="org.apache.cxf"></module>
            <module name="org.codehaus.woodstox" ></module>
        </exclusions>
        <exclude-subsystems>
            <subsystem name="webservices" ></subsystem>
            <subsystem name="jaxrs" ></subsystem>
        </exclude-subsystems>
  • We get following error message, because in stax2-api-4.0.0 the empty iterator uses generic types.
java.lang.NoSuchMethodError: org.codehaus.stax2.ri.EmptyIterator.getInstance()Lorg/codehaus/stax2/ri/EmptyIterator;

every time we make a call to any cxf Webservice.

  • Is there a way to exclude jboss woodstox implemetation from the application ?

  • The stacktrace is:

    ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/myservlet/ws].[CXFServlet]] (http-/0.0.0.0:8080-1) JBWEB000236: Servlet.service() for servlet CXFServlet threw exception: java.lang.NoSuchMethodError: org.codehaus.stax2.ri.EmptyIterator.getInstance()Lorg/codehaus/stax2/ri/EmptyIterator;        
        at org.apache.cxf.staxutils.StaxUtils.writeStartElement(StaxUtils.java:746) [cxf-api-2.6.9.jar:2.6.9]
        at org.apache.cxf.staxutils.StaxUtils.copy(StaxUtils.java:699) [cxf-api-2.6.9.jar:2.6.9]
        at org.apache.cxf.staxutils.StaxUtils.copy(StaxUtils.java:687) [cxf-api-2.6.9.jar:2.6.9]
        at org.apache.cxf.staxutils.StaxUtils.copy(StaxUtils.java:635) [cxf-api-2.6.9.jar:2.6.9]
        at org.apache.cxf.wsdl.EndpointReferenceUtils.createSchema(EndpointReferenceUtils.java:660) [cxf-api-2.6.9.jar:2.6.9]
        at org.apache.cxf.wsdl.EndpointReferenceUtils.getSchema(EndpointReferenceUtils.java:743) [cxf-api-2.6.9.jar:2.6.9]
        at org.apache.cxf.interceptor.AbstractInDatabindingInterceptor.setSchemaInMessage(AbstractInDatabindingInterceptor.java:109) [cxf-api-2.6.9.jar:2.6.9]
        at org.apache.cxf.interceptor.AbstractInDatabindingInterceptor.getDataReader(AbstractInDatabindingInterceptor.java:94) [cxf-api-2.6.9.jar:2.6.9]
        at org.apache.cxf.interceptor.AbstractInDatabindingInterceptor.getDataReader(AbstractInDatabindingInterceptor.java:99) [cxf-api-2.6.9.jar:2.6.9]
        at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:70) [cxf-api-2.6.9.jar:2.6.9]
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262) [cxf-api-2.6.9.jar:2.6.9]
        at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [cxf-api-2.6.9.jar:2.6.9]
        at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:237) [cxf-rt-transports-http-2.6.9.jar:2.6.9]
        at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:214) [cxf-rt-transports-http-2.6.9.jar:2.6.9]
        at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:194) [cxf-rt-transports-http-2.6.9.jar:2.6.9]
        at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:131) [cxf-rt-transports-http-2.6.9.jar:2.6.9]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:266) [cxf-rt-transports-http-2.6.9.jar:2.6.9]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:186) [cxf-rt-transports-http-2.6.9.jar:2.6.9]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-2.jar:1.0.2.Final-redhat-2]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:242) [cxf-rt-transports-http-2.6.9.jar:2.6.9]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:150) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:854) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_79]
    

Environment

  • Red Hat JBoss Enterprise Application Platform (EAP)
    • 6.x
  • JBossWS-CXF

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content