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