Sergey, I'm currently on it. Just one thing that I stumbled over: the manifest for the cxf-singlebundle-distribution doesn't export version numbers of the javax.xml.bind.* packages. Is that intentionally?
If I extend JSONProvider I'll have to add the dependency to my POM. Then, the manifest generated by maven-bundle-plugin will contain version 2.1.0 of javax.xml.bind.* which can't be resolved at runtime since boot delegation exports version "0.0.0" and DOSGI doesn't export a version. Do you know a nice way around this issue? If I hard encode the JREs JAXB version I couldn't be sure version's correct when run on a different JRE... Thanks and regards, Daniel Am 27.01.2010 um 18:53 schrieb Sergey Beryozkin: > This is strange...Hmm... Is it only JSON responses which are empty ? Can you > try extending the default JSON provider and just overwrite its writeTo and > delegate, just to check, before doing the delegation, if it is actually > invoked or if it has some real data passed in ? Also, can you please try > "org.apache.cxf.rs.httpservice.context" instead of > "org.apache.cxf.rs.address", say, > > org.apache.cxf.rs.httpservice.context="/persons" ? > > cheers, Sergey > > ----- Original Message ----- From: "Daniel Bimschas" > <[email protected]> > To: <[email protected]> > Sent: Wednesday, January 27, 2010 3:28 PM > Subject: Re: DOSGi and JSON responses > > > I tried both the ServiceMix bundle and the Jettison 1.2 bundle but both still > deliver empty output. Debug output looks fine as far as I can see (it selects > org.apache.cxf.jaxrs.provider.JSONProvider for output): > > ... > > [btpool3-0] DEBUG org.apache.cxf.phase.PhaseInterceptorChain - Invoking > handleMessage on interceptor > org.apache.cxf.jaxrs.interceptor.jaxrsoutintercep...@46cfd5ee > [btpool3-0] DEBUG org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor - > Response content type is: application/json > [btpool3-0] DEBUG org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor - > Response EntityProvider is: org.apache.cxf.jaxrs.provider.JSONProvider > [btpool3-0] DEBUG org.apache.cxf.phase.PhaseInterceptorChain - Invoking > handleMessage on interceptor > org.apache.cxf.interceptor.messagesenderinterceptor$messagesenderendingintercep...@4d0155fb > [btpool3-0] DEBUG org.apache.cxf.transport.http_jetty.JettyHTTPDestination - > Finished servicing http request on thread: Thread[btpool3-0,5,main] > > ... > > Any idea? Just to be sure my configuration is correct, here's my > serviceComponents.xml: > > <?xml version="1.0" encoding="UTF-8"?> > <components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0"> > <scr:component enabled="true" immediate="true" > name="VzServiceRestComponent"> > <implementation > class="de.uniluebeck.itm.soapraktikum.ws0910.persons.vz.impl.PersonResource"/> > <service servicefactory="false"> > <provide > interface="de.uniluebeck.itm.soapraktikum.ws0910.persons.vz.impl.PersonResource"/> > </service> > <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:9090/persons/"/> > <property name="org.apache.cxf.rs.databinding" type="String"> > org.apache.cxf.jaxrs.provider.JAXBProvider > org.apache.cxf.jaxrs.provider.JSONProvider > </property> > <property name="service.pid" value="VzServiceRestComponent"/> > <reference name="vzService" > interface="de.uniluebeck.itm.soapraktikum.ws0910.persons.vz.VzService" > cardinality="1..1" policy="static" bind="bindVzService" > unbind="unbindVzService"/> > </scr:component> > </components> > > Am 27.01.2010 um 16:03 schrieb Daniel Bimschas: > >> Would DOSGi RI 1.1 work with >> http://repo1.maven.org/maven2/org/codehaus/jettison/jettison/1.2/jettison-1.2.jar >> or is there any reason it would not? >> >> Am 27.01.2010 um 15:49 schrieb Sergey Beryozkin: >> >>> Hi >>> >>> if you use "org.apache.cxf.rs.provider" string property then it's a >>> comma-separated list of class names, if using declarative services then you >>> need to have a space separated list of class names listed on separate >>> lines, as shown in the section I linked to. >>> As we discussed eralier on, there's also an "org.apache.cxf.rs.databinding" >>> property which is of limited value to JAXRS services at the moment (can >>> have "aegis" or "jaxb" values). I'm thinking of adding more supported >>> values to it so that one can say : >>> "org.apache.cxf.rs.databinding"="jaxb,json" instead of typing class names >>> when setting a "org.apache.cxf.rs.provider". >>> >>> Oh, I forgot...DOSGI RI does not ship Jettison (ServiceMix would install it >>> as part of cxf jaxrs feature), perhaps it should. So if you'd like to use a >>> default CXF JSON provider (which is Jettison-based) then install either >>> Jettison 1.1 bundle [1] or Jettison 1.2, CXF 2.2.4 (which depends on >>> Jettison 1.1) should accept it too, there's no version range in the CXF >>> Import-Package for jettison packages >>> >>> Sergey >>> >>> [1] >>> http://repo1.maven.org/maven2/org/apache/servicemix/bundles/org.apache.servicemix.bundles.jettison/1.0.1_2/ >>> [2] >>> http://docs.codehaus.org/display/JETTISON/2010/01/18/Jettison+1.2+released >>> >>> ----- Original Message ----- From: "Daniel Bimschas" >>> <[email protected]> >>> To: <[email protected]> >>> Sent: Wednesday, January 27, 2010 2:11 PM >>> Subject: Re: DOSGi and JSON responses >>> >>> >>> Sorry, accidentally sent the last before I finished writing it :) >>> >>> I used maven-scr-plugin to generate the properties of the registered >>> service, therefore the syntax should be ok now. However, it doesn't seem to >>> work. I keep getting empty JSON files :( I'll now check out to do it on the >>> greeter_rest sample, see if it works there! >>> >>> Am 27.01.2010 um 10:47 schrieb Sergey Beryozkin: >>> >>>> Hi Daniel >>>> >>>> Please see "Registering custom JAXRS providers" in [1]. >>>> There's a couple of options. One is to to use an >>>> "org.apache.cxf.rs.provider" property which accepts a list of class names, >>>> so you can list the provider you need, ex, >>>> "org.apache.cxf.jaxrs.provider.JSONProvider", etc. The other option is to >>>> register an instance of say JSONProvider as an OSGI service, this option >>>> is the only way at the moment to have a provider instance configured with >>>> some custom properties... >>>> >>>> To simplify things a bit, I'll probably need to intoduce "json", "atom", >>>> "xbeans", etc for org.apache.cxf.rs.databinding so that users can avoid >>>> having to specify classnames like >>>> "org.apache.cxf.jaxrs.provider.JSONProvider" directly...For more advanced >>>> cases we will need to recognize providers configured in Spring (as an >>>> alternative to registering them as OSGI services)... >>>> >>>> cheers, Sergey >>>> >>>> >>>> >>>> [1] >>>> http://cxf.apache.org/distributed-osgi-reference.html#DistributedOSGiReference-ServiceProviderpropertiesForConfiguringRESTfulJAXRSbasedendpointsandconsumers >>>> >>>> ----- Original Message ----- From: "Daniel Bimschas" >>>> <[email protected]> >>>> To: <[email protected]> >>>> Sent: Tuesday, January 26, 2010 9:59 PM >>>> Subject: DOSGi and JSON responses >>>> >>>> >>>> Hi List! >>>> >>>> I've now successfully developed a project that additionally exposes its >>>> interfaces over the DOSGi based JAX-RS implementation as RESTful service. >>>> Therefore I've used the JAXB-Binding which worked fine. However, I >>>> couldn't find any information about how to get the JSON responses working >>>> (they are always empty, i.e. 0 bytes of payload). Can somebody help me >>>> here and point me to the right documentation? >>>> >>>> Kind regards, >>>> Daniel= >>> >>> -- >>> 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 > > -- 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
smime.p7s
Description: S/MIME cryptographic signature
