Andy Schmidt created AXIOM-457:
----------------------------------

             Summary: java.lang.LinkageError: 
"javax/xml/stream/XMLStreamReader" by using 
org.apache.axiom.om.impl.llom.OMStAXWrapper
                 Key: AXIOM-457
                 URL: https://issues.apache.org/jira/browse/AXIOM-457
             Project: Axiom
          Issue Type: Bug
    Affects Versions: 1.2.14
            Reporter: Andy Schmidt
            Priority: Critical
             Fix For: 1.2.15


I would like to use Axis2 OSGi bundle with Axiom in my OSGI-Runtime.

My setting looks like:
START LEVEL 1
   ID|State |Level|Name
    0|Active | 0|System Bundle (4.2.1)
    5|Active | 1|Apache JAMES Mime4j (Core) (0.7.2)
    6|Active | 1|Axiom API (1.2.14)
    7|Active | 1|Axiom DOM (1.2.14)
    8|Active | 1|Axiom Impl (1.2.14)
    9|Active | 1|Apache Commons Codec (1.9.0)
   10|Active | 1|Commons FileUpload (1.3.0)
   11|Active | 1|Apache Geronimo Bundles: commons-httpclient-3.1 (3.1.0.2)
   12|Active | 1|Commons IO (2.4.0)
   13|Active | 1|Commons Logging (1.1.3)
   14|Active | 1|de.kisters.wab.amigw.hello (5.80.0.SNAPSHOT)
   15|Active | 1|Activation 1.1 (1.1.0)
   16|Active | 1|JavaMail 1.4 (1.7.1)
   17|Active | 1|geronimo-jms_1.1_spec (1.1.1)
   18|Active | 1|geronimo-stax-api_1.0_spec (1.0.1)
   19|Active | 1|Web Services Metadata 2.0 (1.1.3)
   20|Active | 1|Apache HttpClient OSGi bundle (4.2.4)
   21|Active | 1|Apache HttpCore OSGi bundle (4.2.4)
   22|Active | 1|jsr311-api (1.1.1)
   23|Active | 1|Apache Neethi (3.0.2)
   24|Active | 1|org.apache.axis2.osgi (1.0.0.2)
   25|Active | 1|Apache Felix Bundle Repository (1.6.6)
   26|Active | 1|Apache Felix Configuration Admin Service (1.8.0)
   27|Active | 1|Apache Felix EventAdmin (1.3.2)
   28|Active | 1|Apache Felix Gogo Command (0.12.0)
   29|Active | 1|Apache Felix Gogo Runtime (0.10.0)
   30|Active | 1|Apache Felix Gogo Shell (0.10.0)
   31|Active | 1|Apache Felix Http Jetty (2.2.2)
   32|Active | 1|Apache Felix (4.2.1)
   33|Active | 1|Apache Felix Metatype Service (1.0.10)
   34|Active | 1|Apache Felix Declarative Services (1.8.2)
   35|Active | 1|Apache ServiceMix :: Bundles :: wsdl4j (1.6.2.6)
   36|Active | 1|Stax2 API (3.1.1)
   37|Active | 1|Woden - API (1.0.0)
   38|Active | 1|Woden - Commons (1.0.0)
   39|Active | 1|Woden - DOM (1.0.0)
   40|Active | 1|Woodstox XML-processor (4.2.0)
   41|Active | 1|XmlSchema (1.4.7)

After deploying my web application (simple soap hello world test bundle) and 
sending a soap request i got that error message:

SEVERE: loader constraint violation: loader (instance of 
org/apache/felix/framework/BundleWiringImpl$BundleClassLoaderJava5) previously 
initiated loading for a different type with name 
"javax/xml/stream/XMLStreamReader"
java.lang.LinkageError: loader constraint violation: loader (instance of 
org/apache/felix/framework/BundleWiringImpl$BundleClassLoaderJava5) previously 
initiated loading for a different type with name 
"javax/xml/stream/XMLStreamReader"
at 
com.moodykettle.webservice.helloworld.SayHello$Factory.parse(SayHello.java:354)
at 
de.kisters.amigw.mds.web.service.HelloWorldServiceMessageReceiverInOut.fromOM(HelloWorldServiceMessageReceiverInOut.java:138)
at 
de.kisters.amigw.mds.web.service.HelloWorldServiceMessageReceiverInOut.invokeBusinessLogic(HelloWorldServiceMessageReceiverInOut.java:43)
at 
org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
at 
org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
at 
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at 
org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:96)
at 
org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:79)
at 
org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42)
at 
org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49)
at 
org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
at 
org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48)
at 
org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39)
at 
org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at 
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
at 
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 

I dived deeper into that issue. The class 
org.apache.axiom.om.impl.llom.OMStAXWrapper from the Axiom-Impl project 
implements the interface XMLStreamReader from package javax.xml.stream.
I looked at the wiring of the OSGi-Runtime. The Axis2 OSGi bundle imports the 
javax.xml.stream package in version 1.0 and wires that with the geronimo stax 
api bundle, because it exports this package in version 1.0. Axiom-Impl bundle 
wires that package with the felix runtime bundle (java vm), because it doesn't 
need the version 1.0 explicit. Thats why this error occurs. That could be 
resolved if Axiom-Impl exports there packages with using declarations or 
imports that package also in version 1.0 from geronimo stax api.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to