You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Dave Brosius (JIRA)" <ji...@apache.org> on 2008/04/27 08:18:55 UTC

[jira] Closed: (CXF-1550) CXF and OSGI have problems with classloaders related to javax.xml.namespace.QName

     [ https://issues.apache.org/jira/browse/CXF-1550?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dave Brosius closed CXF-1550.
-----------------------------

       Resolution: Incomplete
    Fix Version/s:     (was: 2.0.6)

> CXF and OSGI have problems with classloaders related to javax.xml.namespace.QName
> ---------------------------------------------------------------------------------
>
>                 Key: CXF-1550
>                 URL: https://issues.apache.org/jira/browse/CXF-1550
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 2.0.5
>            Reporter: Dave Brosius
>            Priority: Minor
>
> org.apache.cxf.common.xml.schema.SchemaCollection attempts to access javax.xml.namespace.QName from the stax-api jar. In a normal environment this is fine, but in OSGI, the osgi framework pulls the dependency from the system class path as their are no constraints given to the class loader. This causes problems as the QName class is different between stax-api and the jdk one. To resolve this, the Manifest of cxf-2.0.5-incubator.jar could specify a minimum version for the java.xml.* packages that precludes the classloaders from loading these classes from the system (osgi) classpath. This version then needs to be the version exported by the stax-api jar.
> [CODE]
> Caused by: java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "org.apache.cxf.common.xmlschema.FixedExtensionDeserializer.deserialize(Lorg/apache/ws/commons/schema/XmlSchemaObject;Ljavax/xml/namespace/QName;Lorg/w3c/dom/Node;)V" the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the current class, org/apache/cxf/common/xmlschema/FixedExtensionDeserializer, and the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) for interface org/apache/ws/commons/schema/extensions/ExtensionDeserializer have different Class objects for the type javax/xml/namespace/QName used in the signature
> 	at org.apache.cxf.common.xmlschema.SchemaCollection.<init>(SchemaCollection.java:69)
> 	at org.apache.cxf.common.xmlschema.SchemaCollection.<init>(SchemaCollection.java:64)
> 	at org.apache.cxf.service.model.ServiceInfo.<init>(ServiceInfo.java:44)
> 	at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:300)
> 	at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:368)
> 	at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:162)
> 	at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:97)
> 	at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:74)
> 	at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:113)
> 	at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:160)
> 	at com.primavera.echo.installer.EchoInstaller.init(EchoInstaller.java:23)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> 	at java.lang.reflect.Method.invoke(Unknown Source)
> 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1378)
> 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1339)
> 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1299)
> 	... 14 more
> [/CODE]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.