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
>>
>
>

Reply via email to