CXFServlet выдает java.lang.Ошибка NoSuchMethodError:

#java #web-services #soap #cxf #stax

#java #веб-службы #soap #cxf #stax

Вопрос:

 java.lang.NoSuchMethodError: org.codehaus.stax2.ri.EmptyIterator.getInstance()Lorg/codehaus/stax2/ri/EmptyIterator;
        at com.ctc.wstx.sw.OutputElementBase.getPrefixes(OutputElementBase.java:358)
        at org.apache.cxf.staxutils.StaxUtils.writeStartElement(StaxUtils.java:793)
        at org.apache.cxf.staxutils.StaxUtils.copy(StaxUtils.java:741)
        at org.apache.cxf.staxutils.StaxUtils.copy(StaxUtils.java:705)
        at org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor$SAAJOutEndingInterceptor.handleMessage(SAAJOutInterceptor.java:214)
        at org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor$SAAJOutEndingInterceptor.handleMessage(SAAJOutInterceptor.java:174)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
        at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:516)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:425)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:279)
        at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
        at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:138)
        at com.sun.proxy.$Proxy223.execute(Unknown Source)
 

Я использую Java 8, а приложение Apache CXF 3.0.7 отлично работает на локальном сервере, только выдает ошибку при перемещении его в AWS EC2, это происходит во время выполнения

локальная среда и ec2 одинаковы, тот же jdk и та же версия tomcat

Есть мысли?

 [INFO]  - org.apache.cxf:cxf-rt-ws-security:jar:3.0.7:compile
[INFO] |   - org.apache.cxf:cxf-core:jar:3.0.7:compile
[INFO] |  |   - org.codehaus.woodstox:woodstox-core-asl:jar:4.4.1:compile
[INFO] |  |  - org.apache.ws.xmlschema:xmlschema-core:jar:2.2.1:compile
[INFO] |   - org.apache.cxf:cxf-rt-bindings-soap:jar:3.0.7:compile
[INFO] |  |   - org.apache.cxf:cxf-rt-wsdl:jar:3.0.7:compile
[INFO] |  |  |  - wsdl4j:wsdl4j:jar:1.6.3:compile
[INFO] |  |  - org.apache.cxf:cxf-rt-databinding-jaxb:jar:3.0.7:compile
[INFO] |  |      - com.sun.xml.bind:jaxb-impl:jar:2.2.11:compile
[INFO] |  |     - com.sun.xml.bind:jaxb-core:jar:2.2.11:compile
[INFO] |   - org.apache.cxf:cxf-rt-security:jar:3.0.7:compile
[INFO] |  |  - org.apache.wss4j:wss4j-ws-security-common:jar:2.0.6:compile
[INFO] |  |      - org.apache.santuario:xmlsec:jar:2.0.5:compile
[INFO] |  |      - org.opensaml:opensaml:jar:2.6.1:compile
[INFO] |  |     |  - org.opensaml:openws:jar:1.5.1:compile
[INFO] |  |     |     - org.opensaml:xmltooling:jar:1.4.1:compile
[INFO] |  |      - org.jasypt:jasypt:jar:1.9.2:compile
[INFO] |  |     - org.apache.geronimo.specs:geronimo-javamail_1.4_spec:jar:1.7.1:compile
[INFO] |   - net.sf.ehcache:ehcache:jar:2.10.4:compile
[INFO] |   - org.apache.wss4j:wss4j-ws-security-dom:jar:2.0.6:compile
[INFO] |   - org.apache.wss4j:wss4j-policy:jar:2.0.6:compile
[INFO] |  |  - org.apache.neethi:neethi:jar:3.0.3:compile
[INFO] |   - org.apache.wss4j:wss4j-ws-security-stax:jar:2.0.6:compile
[INFO] |  |  - org.apache.wss4j:wss4j-bindings:jar:2.0.6:compile
[INFO] |  - org.apache.wss4j:wss4j-ws-security-policy-stax:jar:2.0.6:compile
[INFO]  - org.apache.cxf:cxf-rt-frontend-jaxws:jar:3.0.7:compile
[INFO] |   - xml-resolver:xml-resolver:jar:1.2:compile
[INFO] |   - asm:asm:jar:3.3.1:compile
[INFO] |   - org.apache.cxf:cxf-rt-bindings-xml:jar:3.0.7:compile
[INFO] |   - org.apache.cxf:cxf-rt-frontend-simple:jar:3.0.7:compile
[INFO] |  - org.apache.cxf:cxf-rt-ws-addr:jar:3.0.7:compile
[INFO] |     - org.apache.cxf:cxf-rt-ws-policy:jar:3.0.7:compile
[INFO]  - org.apache.cxf:cxf-rt-transports-http:jar:3.0.7:compile
 

Комментарии:

1. Это компиляция или время выполнения? Нормально ли использование метода OutputElementBase.java:358 ?

2. Я не получил ваш запрос. Пожалуйста, четко сформулируйте свой запрос.

3. Как вы решили эту проблему?

Ответ №1:

Наиболее вероятен виновник woodstox-core-asl ; попробуйте заменить его другой версией или woodstox-core (без -asl ).