axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andreas Veithen (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AXIS2-5625) java.lang.LinkageError: "javax/xml/stream/XMLStreamReader" by using org.apache.axiom.om.impl.llom.OMStAXWrapper
Date Wed, 05 Feb 2014 20:08:09 GMT

    [ https://issues.apache.org/jira/browse/AXIS2-5625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13892510#comment-13892510
] 

Andreas Veithen commented on AXIS2-5625:
----------------------------------------

I think that this is because the Axiom bundles have Export-Package directives that don't declare
"uses" constraints, so that the wiring is not guaranteed to be consistent.

> java.lang.LinkageError: "javax/xml/stream/XMLStreamReader" by using org.apache.axiom.om.impl.llom.OMStAXWrapper
> ---------------------------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-5625
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5625
>             Project: Axis2
>          Issue Type: Bug
>    Affects Versions: 1.6.2
>            Reporter: Andy Schmidt
>
> I would like to use Axis2 OSGi bundle 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. Currently I provided a patch in issue
5329 which includes a work-around at the pom file. This work-around excludes the geronimo
stax api dependency. This effected that the javax.xml.stream package will no longer be imported
in version 1.0.
> <!-- Workaround for Axiom dependency. Axis2 OSGi will not be run with Axiom 
> 			because Axiom doesn't export packages with uses. The bnd cannot generate 
> 			the javax.xml.stream imports for the Axis2 OSGi bundle because Axiom imports 
> 			this package without version number from stax api 1.0. -->
> 		<dependency>
> 			<groupId>org.apache.ws.commons.axiom</groupId>
> 			<artifactId>axiom-api</artifactId>
> 			<version>1.2.13</version>
> 			<exclusions>
> 				<exclusion>
> 					<groupId>org.apache.geronimo.specs</groupId>
> 					<artifactId>geronimo-stax-api_1.0_spec</artifactId>
> 				</exclusion>
> 			</exclusions>
> 		</dependency>
> 		<dependency>
> 			<groupId>org.apache.ws.commons.axiom</groupId>
> 			<artifactId>axiom-impl</artifactId>
> 			<version>1.2.13</version>
> 			<exclusions>
> 				<exclusion>
> 					<groupId>org.apache.geronimo.specs</groupId>
> 					<artifactId>geronimo-stax-api_1.0_spec</artifactId>
> 				</exclusion>
> 			</exclusions>
> 		</dependency>



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

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Mime
View raw message