Ah, damnit. I forgot to mention that I took out my self-written JSONProvider 
extending class in order to be sure that doing this doesn't get in the way of 
something. Therefore, Import-Package doesn't contain 
"org.apache.cxf.jaxrs.provider.*" but that should be okay. 

I investigated further. If I use the following properties in my DS component:

 <property name="service.exported.interfaces" type="String" value="*"/>
 <property name="service.exported.configs" type="String" 
value="org.apache.cxf.rs"/>
 <property name="service.exported.intents" type="String" value="HTTP"/>
 <property name="org.apache.cxf.rs.address" type="String" 
value="http://localhost:8081/verzeichnis/"/>
 <property name="org.apache.cxf.rs.databinding" type="String" value="jaxb"/>

there are no exceptions (but also no JSON support). Using the following 
properties

 <property name="service.exported.interfaces" type="String" value="*"/>
 <property name="service.exported.configs" type="String" 
value="org.apache.cxf.rs"/>
 <property name="service.exported.intents" type="String" value="HTTP"/>
 <property name="org.apache.cxf.rs.address" type="String" 
value="http://localhost:8081/verzeichnis/"/>
 <property name="org.apache.cxf.rs.provider" type="String">
   org.apache.cxf.jaxrs.provider.JAXBElementProvider
   org.apache.cxf.jaxrs.provider.JSONProvider
 </property>

I get the CNFEs mentioned before. Changing the "org.apache.cxf.rs.address" 
property to "org.apache.cxf.rs.httpservice.context" as you proposed before 
doesn't change anything too (but that seems just logically).

The strange thing is that I only get those exceptions when the bundle starts 
up. The applications runs fine nevertheless and when I do HTTP requests there 
are no more exceptions. Is this maybe a fallback to the default "jaxb" that 
could lead to this behaviour?

cheers,
Daniel



Am 05.02.2010 um 14:45 schrieb Sergey Beryozkin:

> I'm wondering, is the problem here to do with the fact that DOSGI is trying 
> to use the BundelContext/Bundle of the application bundle to load the 
> providers ? It should work if the providers's code is indeed inside a given 
> app bundle but looks like it causes issues if the provider's code is actually 
> located elsewhere.
> 
> That said, if you own bundle imports the org.apache.cxf.jaxrs.provider.* then 
> surely the OSGI loader has to be capable to find the classes available 
> elsewhere in the container, especially given that CXF minimal bundle is 
> exporting org.apache.cxf.jaxrs.provider ?
> 
> Can you please check that your own bundle Import-Packag(es) the 
> org.apache.cxf.jaxrs.provider.* ?
> 
> thanks, Sergey
> 
> ----- Original Message ----- From: "Daniel Bimschas" 
> <[email protected]>
> To: <[email protected]>
> Sent: Friday, February 05, 2010 1:34 PM
> Subject: Re: DOSGi and JSON responses
> 
> 
> Maybe the full debugging output including stack trace can help more:
> 
> INFO: Creating a 
> de.uniluebeck.itm.soapraktikum.ws0910.persons.vz.rest.PersonResource endpoint 
> from CXF PublishHook, address is http://localhost:8081/verzeichnis/
> java.lang.ClassNotFoundException: 
> org.apache.cxf.jaxrs.provider.JAXBElementProvider
> 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:250)
> at 
> org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java:604)
> at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1487)
> at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:897)
> at 
> org.apache.cxf.dosgi.dsw.handlers.JaxRSUtils.loadProviders(JaxRSUtils.java:112)
> at 
> org.apache.cxf.dosgi.dsw.handlers.JaxRSUtils.getProviders(JaxRSUtils.java:67)
> at 
> org.apache.cxf.dosgi.dsw.handlers.JaxRSPojoConfigurationTypeHandler.createServer(JaxRSPojoConfigurationTypeHandler.java:119)
> at 
> org.apache.cxf.dosgi.dsw.hooks.ServiceHookUtils.createServer(ServiceHookUtils.java:86)
> at 
> org.apache.cxf.dosgi.dsw.hooks.CxfPublishHook.createServer(CxfPublishHook.java:106)
> at 
> org.apache.cxf.dosgi.dsw.hooks.CxfPublishHook.publishEndpoint(CxfPublishHook.java:80)
> at org.apache.cxf.dosgi.dsw.Activator$1.run(Activator.java:164)
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:637)
> 05.02.2010 14:32:16 org.apache.cxf.dosgi.dsw.handlers.JaxRSUtils loadProviders
> WARNUNG: JAXRS Provider org.apache.cxf.jaxrs.provider.JAXBElementProvider can 
> not be loaded or created
> java.lang.ClassNotFoundException: org.apache.cxf.jaxrs.provider.JSONProvider
> 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:250)
> at 
> org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java:604)
> at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1487)
> at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:897)
> at 
> org.apache.cxf.dosgi.dsw.handlers.JaxRSUtils.loadProviders(JaxRSUtils.java:112)
> at 
> org.apache.cxf.dosgi.dsw.handlers.JaxRSUtils.getProviders(JaxRSUtils.java:67)
> at 
> org.apache.cxf.dosgi.dsw.handlers.JaxRSPojoConfigurationTypeHandler.createServer(JaxRSPojoConfigurationTypeHandler.java:119)
> at 
> org.apache.cxf.dosgi.dsw.hooks.ServiceHookUtils.createServer(ServiceHookUtils.java:86)
> at 
> org.apache.cxf.dosgi.dsw.hooks.CxfPublishHook.createServer(CxfPublishHook.java:106)
> at 
> org.apache.cxf.dosgi.dsw.hooks.CxfPublishHook.publishEndpoint(CxfPublishHook.java:80)
> at org.apache.cxf.dosgi.dsw.Activator$1.run(Activator.java:164)
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:637)
> 05.02.2010 14:32:16 org.apache.cxf.dosgi.dsw.handlers.JaxRSUtils loadProviders
> 
> 
> Am 05.02.2010 um 14:22 schrieb Daniel Bimschas:
> 
>> It's Felix over Pax Runner in my case. If I take the 
>> "sun.*,com.sun.*,javax.xml.bind,javax.xml.bind.*" packages out of the 
>> bootdelegation classpath the following errors will occur:
>> 
>> java.lang.ClassNotFoundException: 
>> org.apache.cxf.jaxrs.provider.JAXBElementProvider
>> java.lang.ClassNotFoundException: org.apache.cxf.jaxrs.provider.JSONProvider
>> 
>> For me, currently that doesn't make sense since the DOSGI bundle is fully 
>> resolved and all classes should be loadable. I'll further investigate this...
>> 
>> Am 05.02.2010 um 13:29 schrieb Sergey Beryozkin:
>> 
>>>> S.B : Is it a single bundle distro ? Yes, it ships the stax api bundle I 
>>>> think...Hmm...Will it work if you try the multibundle distro and omit the 
>>>> stax-api bundle ? Or perhaps updating the Equinox config to block the stax 
>>>> api from the system ?
>> 
>> -- 
>> M.Sc. Daniel Bimschas
>> Institute of Telematics, University of Lübeck
>> http://www.itm.uni-luebeck.de/users/bimschas
>> Ratzeburger Allee 160, 23538 Lübeck, Germany
>> Phone: +49 451 500 5389
>> 
> 
> -- 
> M.Sc. Daniel Bimschas
> Institute of Telematics, University of Lübeck
> http://www.itm.uni-luebeck.de/users/bimschas
> Ratzeburger Allee 160, 23538 Lübeck, Germany
> Phone: +49 451 500 5389
> 
> 

-- 
M.Sc. Daniel Bimschas
Institute of Telematics, University of Lübeck
http://www.itm.uni-luebeck.de/users/bimschas
Ratzeburger Allee 160, 23538 Lübeck, Germany
Phone: +49 451 500 5389

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to