Hi, I've tried to get JSON result with the 2.2.6 version of CXF but i realized that this version doesn't have dependency to jettison bundles and doesn't use jettison for json support, is it correct? When i try to download and install next version 2.2.7 into osgi environment, this version requires many bundles to be deployed (such as abdera project and so on... ), but I cannot find most of these bundles throughout the web and see that there are mail threads stating that some of them are not OSGified yet. What is the best possible for me to do to have this version of cxf running in OSGi environment, from where I can find these bundles?
Thanks, Filip On Thu, Apr 29, 2010 at 3:35 PM, Sergey Beryozkin <[email protected]>wrote: > Try this one : > > > http://repository.codehaus.org/org/codehaus/jettison/jettison/1.2/jettison-1.2.jar > > DOSGI 1.1 includes the CXF bundle which has to work with this Jettison > provider (OTB). > (provided at a time CXF initializes Jettison is available). But everyone > says it does now work so I'll have to find some time to experiment with the > demo... > > Or you can just try Jackson if you wish, register it as a custom provider. > > cheers, Sergey > > On Thu, Apr 29, 2010 at 1:28 PM, Duxmaster <[email protected]> wrote: > > > > > Hi, > > > > is it possible to provide me with links to cxf bundles and jettison > bundles > > which you think that work and I will try them with my application? I have > > tried before writing previous to get whatever version of jettison from > > their > > official site and test it together with cxf dosgi version 1.1 downloaded > > from official link (CXF site), but nothing changes. > > > > Thanks, > > Filip > > > > Sergey Beryozkin-5 wrote: > > > > > > Hi > > > > > > On Thu, Apr 29, 2010 at 8:43 AM, Duxmaster <[email protected]> > wrote: > > > > > >> > > >> Hi, > > >> > > >> I also can't understand is there anything which I can do to fix this > > >> issue > > >> with empty json response. I am using DOSGi version 1.1 and Jettison > > 1.0.1 > > >> downloaded from the link given in this thread but the result is the > same > > >> and > > >> response is empty. The example which I try to run is simple get method > > >> which > > >> returns Jaxb entity but method is annotated with > > >> @Produces("application/json"). > > >> > > >> > > > I honestly do not understand why it does not work in DOSGI; can you > > > please ensure that you install > > > Jettison (try 1.2 - it has been enhanced and it is a valid bundle) > first, > > > otherwise restart a cxf bundle ? I'll try to find some time > > > and enhance a greeter_rest demo for a client to get some JSON data... > > > > > > > > >> One more question from my side - What is the right way to make my own > > >> JSON > > >> provider and to configure cxf to use it (if i am not in spring > > >> environment > > >> , > > >> what configuration files and where in the application project should > be > > >> added in order to work?) ? > > >> > > > > > > Please see "Registering custom providers" in > > > > > > http://cxf.apache.org/distributed-osgi-reference.html#DistributedOSGiReference-ServiceProviderpropertiesForConfiguringRESTfulJAXRSbasedendpointsandconsumers > > > > > > thanks, Sergey > > > > > > > > >> > > >> Best regards, > > >> Filip Yankov > > >> > > >> > > >> Sergey Beryozkin-2 wrote: > > >> > > > >> > Hi > > >> > > > >> > This can be easily fixed AFAIK, I can't recall the name of the > paxweb > > >> > property but you can ensure its Httpservice occupies some > > >> > other port...Just checked in ServiceMix, it is > > >> > > > >> > org.osgi.service.http.port=8181, > > >> > > > >> > add it to felix/etc/config.properties. etc > > >> > > > >> > cheers, Sergey > > >> > > > >> > Sergey, > > >> > > > >> > I just stumbled over another issue that may annoy DOSGI users. If > you > > >> > start the single bundle distribution (no idea if it's the same > > >> > with multi bundle) it starts a Jetty on localhost:8080 which should > be > > >> > usable like a OSGi compendium HTTP service (that's what I > > >> > understood at least). Now if one uses the JAX-RS stuff and registers > > >> it's > > >> > instance with the "org.apache.cxf.rs.address" property he > > >> > will have to choose a port other than 8080 or he'll get the > following > > >> > exception: > > >> > > > >> > WARNUNG: WARNING : Problem creating a remote endpoint for > > >> > de.uniluebeck.itm.soapraktikum.ws0910.persons.vz.rest.PersonResource > > >> from > > >> > CXF PublishHook, reason is null > > >> > org.apache.cxf.service.factory.ServiceConstructionException > > >> > at > > >> > > > >> > > > org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:114) > > >> > at > > >> > > > >> > > > org.apache.cxf.dosgi.dsw.handlers.JaxRSPojoConfigurationTypeHandler.createServer(JaxRSPojoConfigurationTypeHandler.java:129) > > >> > 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) > > >> > Caused by: org.apache.cxf.interceptor.Fault: Could not start Jetty > > >> server: > > >> > Address already in use > > >> > at > > >> > > > >> > > > org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine.addServant(JettyHTTPServerEngine.java:339) > > >> > at > > >> > > > >> > > > org.apache.cxf.transport.http_jetty.JettyHTTPDestination.activate(JettyHTTPDestination.java:157) > > >> > at > > >> > > > >> > > > org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractObservable.java:48) > > >> > at > > >> > > > >> > > > org.apache.cxf.binding.AbstractBindingFactory.addListener(AbstractBindingFactory.java:164) > > >> > at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:122) > > >> > at > > >> > > > >> > > > org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:105) > > >> > ... 8 more > > >> > Caused by: java.net.BindException: Address already in use > > >> > at sun.nio.ch.Net.bind(Native Method) > > >> > at > > >> > > > >> > > sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:119) > > >> > at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59) > > >> > at > > >> > > > >> > > > org.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.java:205) > > >> > at > > >> > > > >> > > > org.mortbay.jetty.nio.SelectChannelConnector.doStart(SelectChannelConnector.java:304) > > >> > at > > >> > > > >> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) > > >> > at org.mortbay.jetty.Server.doStart(Server.java:233) > > >> > at > > >> > > > >> > org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) > > >> > at > > >> > > > >> > > > org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine.addServant(JettyHTTPServerEngine.java:306) > > >> > ... 13 more > > >> > > > >> > I guess it should be possible to reuse the running Jetty instance > and > > >> > deploy the instance to the standard OSGi HTTP service. At > > >> > least that's what a user would expect. What do you think about it? > > >> > > > >> > Kind regards, > > >> > 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 > > >> > > > >> > > > >> > > > >> > > > >> > > >> -- > > >> View this message in context: > > >> > http://old.nabble.com/DOSGi-and-JSON-responses-tp27330507p28397549.html > > >> Sent from the cxf-user mailing list archive at Nabble.com. > > >> > > >> > > > > > > > > > > -- > > View this message in context: > > http://old.nabble.com/DOSGi-and-JSON-responses-tp27330507p28399882.html > > Sent from the cxf-user mailing list archive at Nabble.com. > > > > >
