Hi,

Well, using CXF is not for the faint-of-heart ;-)

Having said this, you should be extremely cautious at what to actually
include with the CXF bundle.

For example: commons-logging, slf4j, and all jetty libraries must not be
included because either the functionality is already provided by other
bundles in Sling (commons logging, slf4j) or is part of the Sling
offering (the jetty bundles).

Apart from that you might want to make sure to properly set the Thread
context class loader to the correct bundle class loader (propably your
client bundle) before calling into CXF. ... And don't forget to reset
the Thread context class loader after the call !

The reason is that CXF seems to do class loading stuff, which is not
really properly abstracted to run in an OSGi framework.

Alternatively: have you looked at the dOSGi project inside CXF ? This
project comes with properly bundled CXF (again, take extrem care to not
package bundles and libraries already present in Sling).

Regards
Felix

Am Mittwoch, den 08.12.2010, 12:44 +0530 schrieb Unmesh Joshi: 
> Hi,
> 
> My OSGI bundle used on sling app is using CXF client to make web
> service calls. I have included all the CXF and dependent jars in the
> bundle. But I am getting following exception when I run the app. This
> works fine as standalone app. I suspect that this is some classloading
> issue. Anyone has seen this kind issue before?
> 
> java.lang.NullPointerException
>       at 
> org.apache.cxf.jaxb.JAXBDataBinding.createContext(JAXBDataBinding.java:566)
>       at 
> org.apache.cxf.jaxb.JAXBDataBinding.createJAXBContextAndSchemas(JAXBDataBinding.java:504)
>       at 
> org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:324)
>       at 
> org.apache.cxf.service.factory.AbstractServiceFactoryBean.initializeDataBindings(AbstractServiceFactoryBean.java:86)
>       at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:442)
>       at 
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:645)
>       at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:505)
>       at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:242)
>       at 
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:184)
> 
> 
> Here is bundle imports and classpath
> 
> Bundle-Classpath: .,antlr-2.7.7.jar,aopalliance-1.0.jar,asm-3.3.jar,bc
>  prov-jdk15-1.43.jar,commons-collections-3.2.1.jar,commons-lang-2.5.ja
>  r,commons-logging-1.1.1.jar,commons-pool-1.5.2.jar,cxf-2.3.0.jar,cxf-
>  manifest.jar,cxf-xjc-boolean-2.3.0.jar,cxf-xjc-bug671-2.3.0.jar,cxf-x
>  jc-dv-2.3.0.jar,cxf-xjc-ts-2.3.0.jar,FastInfoset-1.2.8.jar,geronimo-a
>  ctivation_1.1_spec-1.1.jar,geronimo-annotation_1.0_spec-1.1.1.jar,ger
>  onimo-javamail_1.4_spec-1.7.1.jar,geronimo-jaxws_2.2_spec-1.0.jar,ger
>  onimo-jms_1.1_spec-1.1.1.jar,geronimo-servlet_3.0_spec-1.0.jar,geroni
>  mo-stax-api_1.0_spec-1.0.1.jar,geronimo-ws-metadata_2.0_spec-1.1.3.ja
>  r,jaxb-api-2.2.1.jar,jaxb-impl-2.2.1.1.jar,jaxb-xjc-2.2.1.1.jar,jetti
>  son-1.2.jar,jetty-continuation-7.1.6.v20100715.jar,jetty-http-7.1.6.v
>  20100715.jar,jetty-io-7.1.6.v20100715.jar,jetty-server-7.1.6.v2010071
>  5.jar,jetty-util-7.1.6.v20100715.jar,jra-1.0-alpha-4.jar,js-1.7R1.jar
>  ,jsr311-api-1.1.1.jar,neethi-2.0.4.jar,oro-2.0.8.jar,saaj-api-1.3.jar
>  ,saaj-impl-1.3.2.jar,serializer-2.7.1.jar,slf4j-api-1.6.1.jar,slf4j-j
>  dk14-1.6.1.jar,spring-aop-3.0.4.RELEASE.jar,spring-asm-3.0.4.RELEASE.
>  jar,spring-beans-3.0.4.RELEASE.jar,spring-context-3.0.4.RELEASE.jar,s
>  pring-core-3.0.4.RELEASE.jar,spring-expression-3.0.4.RELEASE.jar,spri
>  ng-jms-3.0.4.RELEASE.jar,spring-tx-3.0.4.RELEASE.jar,spring-web-3.0.4
>  .RELEASE.jar,stax2-api-3.0.2.jar,velocity-1.6.4.jar,webservices.jar,w
>  oodstox-core-asl-4.0.8.jar,wsdl4j-1.6.2.jar,wss4j-1.5.9.jar,xalan-2.7
>  .1.jar,xmlbeans-2.4.0.jar,xml-resolver-1.2.jar,XmlSchema-1.4.7.jar,xm
>  lsec-1.4.3.jar
> 
> Import-Package:  org.osgi.framework, javax.servlet, org.apache.sling.a
>  pi.resource, org.apache.sling.api, javax.servlet.http, org.apache.sli
>  ng.api.servlets, org.w3c.dom, javax.xml.namespace, javax.xml.transfor
>  m, org.xml.sax, javax.xml.parsers, javax.xml.transform.sax,javax.xml.
>  transform.dom,javax.management, javax.management.modelmbean, javax.xm
>  l.datatype, javax.xml.bind.annotation
> 
> Build-Jdk: 1.5.0_16
> 
> Thanks,
> Unmesh


Reply via email to