Problem Description:

When creating a simple SOAP endpoint in Apache Karaf with Camel 3.20.3/2 
(tested), the following errors occur when retrieving the WSDL:

HTTP ERROR 500 java.lang.NoSuchMethodError: 
'org.codehaus.stax2.ri.EmptyIterator 
org.codehaus.stax2.ri.EmptyIterator.getInstance()'

Steps to reproduce:

* Start Apache Karaf
* Install simple SOAP endpoint:
  example from karaf/examples/karaf-soap-example at main apache/karaf
  'feature:install karaf-soap-example-blueprint'
* Then access the WSDL from the endpoint: 
http://localhost:8181/cxf/example?wsdl (works as expected)

* Add Camel's xml-specs-api feature: 'feature:install xml-specs-api'
* Important: Restart Karaf
* Then access the WSDL again: http://localhost:8181/cxf/example?wsdl (The error 
now occurs!)
   HTTP ERROR 500 java.lang.NoSuchMethodError: 
'org.codehaus.stax2.ri.EmptyIterator 
org.codehaus.stax2.ri.EmptyIterator.getInstance()'

Analaysis:

Different Woodstox versions with different "stax2-api" versions are used in the 
Apache Camel feature.xml.

https://repo1.maven.org/maven2/org/apache/camel/karaf/apache-camel/3.20.2/apache-camel-3.20.2-features.xml

"xml-specs-api" uses a very old Woodstox version (“woodstox-core-asl:4.4.1”) 
which requires the stax2-api in version 3.1.4.
However, since "camel-stax" uses the Woodstox version 6.4.0 of com.fasterxml, 
there is a version conflict here: "woodstox-core-asl:4.4.1" does not work with 
"stax2-api 4.2.1"

Furthermore, camel-olingo4 references two different stax2-api versions. Is this 
really correct? Doesn't this cause version conflicts?

----

Currently we solved that problem by replacing bundles in 
"org.apache.karaf.features.xml".

<bundle mode="maven" 
originalUri="mvn:org.codehaus.woodstox/woodstox-core-asl/4.4.1" 
replacement="wrap:mvn:com.fasterxml.woodstox/woodstox-core/6.4.0"/>

With kind regards
Bert Speckels

Reply via email to