As a far as I know currently a path always also includes all the sub paths.
So this will not work. Not sure if we could change the code to handle this.

Christian

2018-05-08 11:09 GMT+02:00 mcancomert <[email protected]>:

> Hello,
>
> I have following endpoints I want to provide:
> (IMyEndpoint interface)
> /myendpoint
> /myendpoint/{id}
>
> (ISubendpoint interface)
> /myendpoint/{id}/subendpoint
> /myendpoint/{id}/subendpoint/{subid}
>
> (IOtherSubendpoint interface)
> /myendpoint/{id}/othersubendpoint/{othersubid}
> /myendpoint/{id}/othersubendpoint/{othersubid}
>
> For a better separation of concerns and to keep the resource implementation
> simple,
> I would like to divide this list of endpoints in 3 resource interfaces.
>
> I set @Path annotation on the interface always "" because I expose the
> endpoint with the
> org.apache.cxf.rs.address property.
> (If there is a better way then this I would like to know as well)
>
> However if I use the following resource definitions, CXF search for the
> "/myendpoint/{id}/subendpoint" in the MyEndpoint Resource instead of
> Subendpoint resource and it results with 404.
>
> @Path("") // is this correct or is there a better way to do this?
> public interface IMyEndpoint {
>   @GET
>   public Response getAll();
>
>   @GET
>   @Path("{id}")
>   public Response getById(@PathParam("id")String id);
>
> }
>
> @Component
> @Properties({
> @Property(name = "org.apache.cxf.rs.address", value = "/myendpoint")
> })
> public class MyEndpoint implements IMyEndpoint {
> ...
> }
>
> @Path("")
> public interface ISubendpoint {
>   @GET
>   public Response getAll();
>
>   @GET
>   @Path("{subid}")
>   public Response getById(@PathParam("id")String id,
> @PathParam("subid")String subid);
> }
>
> @Component
> @Properties({
> @Property(name = "org.apache.cxf.rs.address", value =
> "/myendpoint/{id}/subendpoint")
> })
> public class Subendpoint implements ISubendpoint {
> ...
> }
>
> CXF has a documentation for Selection algorithm but I am not sure how to
> make it work with DOSGI:
> https://cwiki.apache.org/confluence/display/CXF20DOC/
> JAX-RS+Basics#JAX-RSBasics-Overviewoftheselectionalgorithm.
>
> If I put everything under IMyEndpoint interface and use path annotations on
> methods, then it works.
> Could anyone help me to make it works in a modular way?
>
>
>
>
>
> --
> Sent from: http://cxf.547215.n5.nabble.com/cxf-user-f547216.html
>



-- 
-- 
Christian Schneider
http://www.liquid-reality.de

Computer Scientist
http://www.adobe.com

Reply via email to