I have changed the version to DOSGi 1.4.0 and I'm experiencing the same problems: mixing of methods and URLs in different services. It seems like last registered service puts his methods in all services (looking at paths and URLs in WADLs).
On 2 May 2013 11:52, Julio Carlos Barrera Juez < [email protected]> wrote: > What fix? Is there any bug in version 1.3? I am going to try changing the > version, but what now? Do need I to use both properties? How to achieve > having an URL like "/myApp/serviceX/methodY"? > > > On 2 May 2013 11:39, Sergey Beryozkin <[email protected]> wrote: > >> On 02/05/13 10:34, Julio Carlos Barrera Juez wrote: >> >>> I am using DOSGI 1.3 with bundles cxf-dosgi-ri-discovery-local and >>> cxf-dosgi-ri-dsw-cxf. And CXF 2.4.3. It is difficult to choose a >>> different >>> version, because we use a concrete Servicemix version (4.4.1), quite old, >>> we know :-( . >>> >> >> The fix I was referring to (and which I hope but can not guarantee at the >> moment will help in your case) is in DOSGi 1.4. Can you experiment with >> DOSGi 1.4 multibundle distro ? >> >> Sergey >> >> >>> >>> On 2 May 2013 11:28, Sergey Beryozkin<[email protected]**> wrote: >>> >>> What DOSGi version do you use ? >>>> Sergey >>>> >>>> On 02/05/13 10:22, Julio Carlos Barrera Juez wrote: >>>> >>>> As I wrote in my first e-mail, If we use the same value for " >>>>> org.apache.cxf.rs.******httpservice.context" in each bundle, we get >>>>> errors >>>>> >>>>> noticing it. And if we use different values in "org.apache.cxf.rs.** >>>>> >>>>> httpservice.context" property and "org.apache.cxf.rs.address" there is >>>>> a >>>>> mix in the WADLs and in the WS registrations. Each WADL point to the >>>>> last >>>>> registered service. We have tried all the combinations of values of >>>>> both >>>>> properties and none of them give us a good result ;-(( >>>>> >>>>> >>>>> On 2 May 2013 11:01, Sergey Beryozkin<[email protected]****> >>>>> wrote: >>>>> >>>>> Hi >>>>> >>>>>> >>>>>> On 02/05/13 09:10, Julio Carlos Barrera Juez wrote: >>>>>> >>>>>> Additionally, we cannot provide good javax.ws.rs.Path annotations >>>>>> >>>>>>> because >>>>>>> our OSGi service interfaces are used to generate different >>>>>>> services dynamically. for instance, given this interface: >>>>>>> >>>>>>> @Path("/") >>>>>>> public interface DynamicService { >>>>>>> >>>>>>> @Path("/methodA") >>>>>>> public Object methodA(); >>>>>>> >>>>>>> } >>>>>>> >>>>>>> Different services are registered using the same interface, then >>>>>>> different "org.apache.cxf.rs.address" >>>>>>> properties are generated to differentiate each service like >>>>>>> "/serviceA" >>>>>>> and >>>>>>> "/serviceB". Both services have same interface, but different >>>>>>> instances. >>>>>>> >>>>>>> >>>>>>> What I know is possible with DOSGi CXF 1.4 is to use both >>>>>>> >>>>>> "org.apache.cxf.rs.******httpservice.context" and >>>>>> >>>>>> "org.apache.cxf.rs.address" >>>>>> >>>>>> properties, both being relative, example, see >>>>>> >>>>>> http://svn.apache.org/repos/******asf/cxf/dosgi/tags/cxf-**dosgi-****<http://svn.apache.org/repos/****asf/cxf/dosgi/tags/cxf-dosgi-****> >>>>>> <http://svn.apache.**org/repos/**asf/cxf/dosgi/**tags/cxf-dosgi-**<http://svn.apache.org/repos/**asf/cxf/dosgi/tags/cxf-dosgi-**> >>>>>> > >>>>>> ri-1.4.0/samples/greeter_rest/******impl2/src/main/java/org/** >>>>>> apache/cxf/dosgi/samples/******greeter/impl2/rest/Activator.*** >>>>>> ***java< >>>>>> http://svn.apache.org/**repos/**asf/cxf/dosgi/tags/cxf-**<http://svn.apache.org/**repos/asf/cxf/dosgi/tags/cxf-**> >>>>>> dosgi-ri-1.4.0/samples/****greeter_rest/impl2/src/main/** >>>>>> java/org/apache/cxf/dosgi/****samples/greeter/impl2/rest/**** >>>>>> Activator.java<http://svn.**apache.org/repos/asf/cxf/** >>>>>> dosgi/tags/cxf-dosgi-ri-1.4.0/**samples/greeter_rest/impl2/** >>>>>> src/main/java/org/apache/cxf/**dosgi/samples/greeter/impl2/** >>>>>> rest/Activator.java<http://svn.apache.org/repos/asf/cxf/dosgi/tags/cxf-dosgi-ri-1.4.0/samples/greeter_rest/impl2/src/main/java/org/apache/cxf/dosgi/samples/greeter/impl2/rest/Activator.java> >>>>>> > >>>>>> >>>>>>> >>>>>>> >>>>>> So you should be able to set "org.apache.cxf.rs.****** >>>>>> httpservice.context" >>>>>> >>>>>> to >>>>>> >>>>>> say "/rest" for all the bundles and "/a", "/b", etc for >>>>>> "org.apache.cxf.rs.address" for the individual bundles. >>>>>> Give that a try please. >>>>>> >>>>>> One other thing is that you can avoid annotating interfaces with >>>>>> JAX-RS >>>>>> annotations and use the external user models, the greeter_rest demo >>>>>> shows >>>>>> that too. The only limitation there is that a user model is static, >>>>>> one >>>>>> can >>>>>> not 'attach' them dynamically, may be we should support that... >>>>>> >>>>>> Sergey >>>>>> >>>>>> >>>>>> >>>>>> On 2 May 2013 09:24, Julio Carlos Barrera Juez< >>>>>> >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>> Hi! >>>>>>> >>>>>>> >>>>>>>> We have a ServiceMix app with multiple bundles. We want to export >>>>>>>> our >>>>>>>> OSGi >>>>>>>> service interfaces using DOSGi. We annotate our service interfaces >>>>>>>> with javax.ws.rs.Path, javax.ws.rs.GET, >>>>>>>> javax.ws.rs.POST, javax.ws.rs.Consumes and javax.ws.rs.Produces. >>>>>>>> Then >>>>>>>> we >>>>>>>> register our OSGi services using Apache Aries Blueprint or Java code >>>>>>>> adding different CXF properties. >>>>>>>> >>>>>>>> At the beginning we used "org.apache.cxf.rs.address" property with >>>>>>>> absolute URLs, using Jetty standalone instance. But now we want to >>>>>>>> use >>>>>>>> relative address to use HTTP service. If we don't >>>>>>>> specify "org.apache.cxf.rs.******httpservice.context" property, our >>>>>>>> >>>>>>>> service >>>>>>>> >>>>>>>> seems >>>>>>>> to be not registered at all. I we specify this property with same >>>>>>>> value >>>>>>>> for >>>>>>>> all services there are some errors when registering services >>>>>>>> ("alias in >>>>>>>> use >>>>>>>> or another context..."). If we specify different values for each >>>>>>>> registration there are no errors, but there are a mix of methods in >>>>>>>> each >>>>>>>> service (looking at WADL). >>>>>>>> >>>>>>>> How we must set both properties to achieve having different services >>>>>>>> registered with relative paths? >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> -- >>>>>> Sergey Beryozkin >>>>>> >>>>>> Talend Community Coders >>>>>> http://coders.talend.com/ >>>>>> >>>>>> Blog: http://sberyozkin.blogspot.com >>>>>> >>>>>> >>>>>> >>>>> >>>> -- >>>> Sergey Beryozkin >>>> >>>> Talend Community Coders >>>> http://coders.talend.com/ >>>> >>>> Blog: http://sberyozkin.blogspot.com >>>> >>>> >>> >> >> -- >> Sergey Beryozkin >> >> Talend Community Coders >> http://coders.talend.com/ >> >> Blog: http://sberyozkin.blogspot.com >> > >
