Hi Sergey,

I'm also trying to get this to work, so I was glad to see your email.
I tried the annotations you suggested:

@Path(value="/{user}/mail")
public class MailService {

        @GET
        @ConsumeMime("application/xml")
        @ProduceMime("application/xml")
        public String listMail(@PathParam("user")String user){
                ...
        }
        
        @Path(value="{messageId}")
        @GET
        @ConsumeMime("application/xml")
        @ProduceMime("application/xml") 
        public String readMessage(@PathParam("messageId")String messageId){
                ...
        }
}

I test it by going to http://localhost:8080/cxf/rest/test/user/mail.
It always ignores listMail and instead does readMessage with a null
messageId.

If I comment out readMessage it will invoke listMail.

Any tips?

Thanks,
Brad.

On Mon, Apr 28, 2008 at 10:24 AM, Sergey Beryozkin
<[EMAIL PROTECTED]> wrote:
> Thanks...
>
>  The problem is actually with these Path annotations :
>
>
>  >> @Path("/users/")
>  >> public class UserService {
>  >>
>  >>   @Path("/users/{id}/")
>  >>   public User getUser(@PathParam("id") String id) {
>  >>     ... // load from db
>  >>   }
>  >>
>  >>   ...
>  >>
>  >> }
>
>  it should be
>
>
>  @Path("/users/")
>  public class UserService {
>
>    @Path("{id}")
>
>    public User getUser(@PathParam("id") String id) {
>      ... // load from db
>    }
>
>  }
>
>  The Path annotations on the root resource class are 'inherited' and 
> concatenated with the one on the resource method getUser()...
>
>  For example to get a collection of users one can do
>
>
>  @Path("/users/")
>  public class UserService {
>
>    @GET
>    public Users getUsers() {
>        ...
>    }
>
>    @Path("{id}")
>
>    public User getUser(@PathParam("id") String id) {
>      ... // load from db
>    }
>
>  }
>
>  Cheers, Sergey
>
>
>
>  ----- Original Message -----
>  From: "Joshua Purcell" <[EMAIL PROTECTED]>
>  To: <[email protected]>
>  Sent: Monday, April 28, 2008 5:26 AM
>  Subject: Re: Question about JAX-RS Sub resources
>
>
>  >
>  > Your example is a little different from the sample JAX-RS code included 
> with
>  > the CXF snapshot. This may work better for you:
>  > @Path("/userservice/")
>  > public class UserService {
>  >  @Path("/users/{id}/")
>  >  public User getUser(@PathParam("id") String id) {
>  >    ... // load from db
>  >  }
>  > }
>
>  ----------------------------
>  IONA Technologies PLC (registered in Ireland)
>  Registered Number: 171387
>  Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
>

Reply via email to