Hi,
  I traced the code to
org.apache.cxf.jaxrs.utils.JAXRSUtils.findTargetMethod method where the path
is gotten from the final match group (line 284, see below). Based on the
JAX-RS 1.0 spec, this is correct. However, on step 5 in 3.7.3 in JAX-RS
spec, a ‘(/.*)?’ should be appended to the uri template. CXF seems missing
this step and the final matching group becomes the address extension in my
case.  Otherwise, it should be "".

Regards,
Rice

String path = values.getFirst(URITemplate.FINAL_MATCH_GROUP);

On Sat, Jul 10, 2010 at 4:26 AM, Sergey Beryozkin <[email protected]>wrote:

> Hi
>
> On Fri, Jul 9, 2010 at 10:29 AM, Rice Yeh <[email protected]> wrote:
>
> > Hi,
> >  I have root resource class which match request's address extension. For
> > example, htttp://localhost:8080/image/g1.png. The root resource class is
> > successfully matched and then try to match the right method. However, in
> > CXF, the path used to match to the methods is the extension "png". In
> > Jboss's RESTEasy, it is the empty string "". I think the empty string is
> > more correct.
> >
> > RestEasy is a good implementation all right :-)
>
>
> >
> > @Path("{resource:.+\\.(js|css|gif|png)}")
> > public class PassThroughResource
> > {
> >
> >    @GET
> >    @Path("")
> >    public InputStream get(@Context UriInfo uri) {
> >    ...
> >  }
> > }
> >
> >
> I'm presuming you debugged it - how did it happen that .gif was not 'eaten'
> by the above regular expression ?
>
> thanks, Sergey
>
>
> > Regards,
> > Rice
> >
>

Reply via email to