cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Karel Vlcek (JIRA)" <>
Subject [jira] [Created] (CXF-3422) 'Cannot find target method' when certain hex-encoded characters are used in @PathParam in GET requests
Date Fri, 25 Mar 2011 11:05:05 GMT
'Cannot find target method' when certain hex-encoded characters are used in @PathParam in GET

                 Key: CXF-3422
             Project: CXF
          Issue Type: Bug
          Components: JAX-RS
    Affects Versions: 2.3.3, 2.3.1
         Environment: Tomcat 6
            Reporter: Karel Vlcek
            Priority: Minor

I have following simple JAX-RS service:

public interface RootService {
    public DataService getDataService();

public interface DataService {
    public Data getData(@PathParam("id") String id);

All works correctly as long as URL contains in position of @PathParam("id") ASCII characters
and digits or hex-encoded spaces. These URLs work:

GET /root/data1/data2/1
GET /root/data1/data2/AAA2BBB
GET /root/data1/data2/1%202

However, when URL on position of the parameter {id} contains certain hex-encoded characters
other than space (1%202), like in this URL (this example contains digit '1' followed by 'latin
capital letter d with caron'):

GET /root/data1/data2/1%C4%8E

I'll get following exception:

	at org.apache.cxf.jaxrs.utils.JAXRSUtils.findTargetMethod(
	at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(
	at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(
	at org.apache.cxf.transport.servlet.ServletDestination.invoke(
	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(
	at org.apache.cxf.transport.servlet.ServletController.invoke(
	at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(
	at javax.servlet.http.HttpServlet.service(
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(
	at org.apache.catalina.core.StandardWrapperValve.invoke(
	at org.apache.catalina.core.StandardContextValve.invoke(
	at org.apache.catalina.core.StandardHostValve.invoke(
	at org.apache.catalina.valves.ErrorReportValve.invoke(
	at org.apache.catalina.core.StandardEngineValve.invoke(
	at org.apache.catalina.connector.CoyoteAdapter.service(
	at org.apache.coyote.http11.Http11Processor.process(
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(

// Simple implementations - just to complete the example...

public class RootServiceImpl implements RootService {
    public StaticDataService getDataService() {
        return new DataServiceImpl();

public class DataServiceImpl implements DataService {
    public Data getData(final String id) {
      // ...

This message is automatically generated by JIRA.
For more information on JIRA, see:

View raw message