Hello,
have you got org.apache.servicemix.bundles.jaxb-impl
and org.apache.servicemix.specs.jaxb-api installed?

smx4 uses some custom-magic way of resolving JAXB factories and similar
stuff

br, 
maciek

On Tue, 2009-11-17 at 11:34 +0100, Markus Wolf wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hi there,
> 
> I have a problem to deploy a bundle using camel-osgi + camel-spring on
> Apache Karaf. When deploying on Java6 it does work fine but on Java5 it
> fails, because there is no JAXB implementation found.
> I get the following exception:
> 
> 11:25:13,924 | ERROR | ExtenderThread-9 | ContextLoaderListener
>    | BundleApplicationContextListener   50 | Application context refresh
> failed
> (OsgiBundleXmlApplicationContext(bundle=de.llynch.esb.llynch-sender,
> config=osgibundle:/META-INF/spring/*.xml))
> org.springframework.beans.factory.BeanDefinitionStoreException: Failed
> to parse JAXB element: javax.xml.bind.JAXBException: Provider
> com.sun.xml.bind.v2.ContextFactory not found
>  - with linked exception:
> [java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory];
> nested exception is javax.xml.bind.JAXBException: Provider
> com.sun.xml.bind.v2.ContextFactory not found
>  - with linked exception:
> [java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory]
>       at
> org.apache.camel.spring.handler.CamelNamespaceHandler.parseUsingJaxb(CamelNamespaceHandler.java:147)
>       at
> org.apache.camel.spring.handler.CamelNamespaceHandler$CamelContextBeanDefinitionParser.doParse(CamelNamespaceHandler.java:199)
>       at
> org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser.parseInternal(AbstractSingleBeanDefinitionParser.java:84)
>       at
> org.springframework.beans.factory.xml.AbstractBeanDefinitionParser.parse(AbstractBeanDefinitionParser.java:56)
>       at
> org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:69)
>       at
> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1297)
>       at
> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1287)
>       at
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:135)
>       at
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:92)
>       at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:507)
>       at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:398)
>       at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
>       at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
>       at
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
>       at
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
>       at
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
>       at
> org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:176)
>       at
> org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:142)
>       at
> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)
>       at
> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422)
>       at
> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$800(AbstractDelegatedExecutionApplicationContext.java:69)
>       at
> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$3.run(AbstractDelegatedExecutionApplicationContext.java:269)
>       at
> org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
>       at
> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.startRefresh(AbstractDelegatedExecutionApplicationContext.java:247)
>       at
> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.stageOne(DependencyWaiterApplicationContextExecutor.java:222)
>       at
> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.refresh(DependencyWaiterApplicationContextExecutor.java:175)
>       at
> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext.java:175)
>       at
> org.springframework.osgi.extender.internal.activator.ContextLoaderListener$2.run(ContextLoaderListener.java:718)
>       at java.lang.Thread.run(Thread.java:595)
> Caused by: javax.xml.bind.JAXBException: Provider
> com.sun.xml.bind.v2.ContextFactory not found
>  - with linked exception:
> [java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory]
>       at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:152)
>       at javax.xml.bind.ContextFinder.find(ContextFinder.java:299)
>       at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:372)
>       at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:337)
>       at
> org.apache.camel.spring.handler.CamelNamespaceHandler.createJaxbContext(CamelNamespaceHandler.java:166)
>       at
> org.apache.camel.spring.handler.CamelNamespaceHandler.getJaxbContext(CamelNamespaceHandler.java:153)
>       at
> org.apache.camel.spring.handler.CamelNamespaceHandler.parseUsingJaxb(CamelNamespaceHandler.java:144)
>       ... 28 more
> Caused by: java.lang.ClassNotFoundException:
> com.sun.xml.bind.v2.ContextFactory
>       at
> org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:744)
>       at org.apache.felix.framework.ModuleImpl.access$100(ModuleImpl.java:61)
>       at
> org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1656)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>       at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:117)
>       ... 34 more
> 
> 
> I have installed the JAXB implementation bundle form springsource which
> should work fine. The creation of the JAXB context fails, because the
> spring-camel bundle is missing the required import-package statements (I
> know no better way even if there is) so the com.sun.xml.bind.v2
> resources/classes could be resolved.
> I know its not fine to import the implementation but the JAXB factory
> lookup is not that good for OSGi.
> Any idea how to resolve this in a graceful manner?
> 
> Thanks for any help
> Markus Wolf
> - --
> NMMN - New Media Markets & Networks GmbH
> Langbehnstrasse 6, 22761 Hamburg
> Geschäftsführung: Kfm. Michael Schütt
> Finanzamt HH-Altona - UStID DE 812 699 852 - HRB 71102 Hamburg
> HypoVereinsbank   -   BLZ 200 300 00   -   Konto-Nr. 156 29 82
> 
> http://www.nmmn.com
> Tel.: +49 40 284 118-0  -  Fax: +49 40 284118-999
> Softwareentwicklung LLynch: -720
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> 
> iEYEARECAAYFAksCfBoACgkQDBHISU1oEKEbhgCfcmtR/sPVOpskZLKZmRqbjtAL
> vO4AnRHlQtAZ/r9OFUtL2E2QCvrzK8gb
> =eXrX
> -----END PGP SIGNATURE-----

Reply via email to