Hi Sergey,

yes listMail is added to the list of candidates.

https://issues.apache.org/jira/browse/CXF-1572

Brad.


On Tue, May 6, 2008 at 5:04 PM, Sergey Beryozkin
<[EMAIL PROTECTED]> wrote:
> Hi
>
>
>
> > Hi,
> >
> > I'm getting an issue where my @Path annotations aren't mapping to the
> > required URLs. Here's a rough outline of my test class:
> >
> > @Path(value="/{domain}/{network}/{user}/mail")
> > public class MailService {
> >
> > @GET
> > @ConsumeMime({"application/xml", "application/json"})
> > @ProduceMime({"application/xml", "application/json"})
> > public MailFolderDocument listMail(@PathParam("domain")String domain,
> > @PathParam("network")String network, @PathParam("user")String user,
> > @HeaderParam("token")String token){
> >           ....
> >       }
> >
> > @Path(value="/{messageId}", limited=true)
> > @GET
> > @ConsumeMime({"application/xml", "application/json"})
> > @ProduceMime({"application/xml", "application/json"})
> > public MessageDocument readMessage(@PathParam("user")String user,
> > @PathParam("messageId")String messageId, @HeaderParam("token")String
> > token){
> >           ....
> >       }
> > }
> >
> > The problem I'm seeing is that when i invoke the URL
> > http://localhost:8081/cxf/rest/test/domain/network/brad/mail, it
> > invokes the readMessage method instead of listMail. Am I using the
> > correct format for my annotations here?
> >
>
>  The annontations seem fine. Can you confirm please, as your're debugging,
> that listMail() is also added to the list of candidates ?
>  I'm actually not sure what exactly JAX_RS says in this regard, the only
> piece I can see is this one (section 3.6, 2.f) :
>
>  "Sort E using the number of literal characters in each member as the
> primary key (descending order), ..., number of capturing groups as the
> secondary key, and the source of each member ..."
>
>  In both cases it's a resource method, so the source is the same. Number of
> captuting groups for listMail is 3 as opposed to 2 for readEmail(), and the
> number of literal characters is different. It seems like only this bit of
> the specification which governs the dispatch in this case, but I''ll need to
> verify it...
>
>  One possible workaround is to
>
>  1. Have another root class created, but with slightly different Path.
>
>  In the end, I believe it's the CXF bug rather than the ambiguity of the
> JAX-RS spec...Can you please open a JIRA ?
>
>
>
>
>
> >
> > Anyway, just in case I have got it right (*pig flies by*) I stepped
> > through JAXRSUtils.findTargetMethod and I was left wondering if this
> > line is correct:
> >
> > private static final String URITEMPLATE_VARIABLE_REGEX = "(.*?)";
> >
> > I'm no regex expert but I did find this in the Java 1.5 API docs:
> >
> > X*?  X, zero or more times
> > X+? X, one or more times
> >
> > Would that value make more sense as "(.+?)" ?
> >
>
>  This is required by the spec, every template parameter is substituted by
> this reg expression. The rationale I believe is that it
>  makes it possible for a given method act as a subresource locator...
>
>  Cheers, Sergey
>
>
> >
> > Thanks,
> > Brad.
> >
>
>  ----------------------------
>  IONA Technologies PLC (registered in Ireland)
>  Registered Number: 171387
>  Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
>

Reply via email to