Rafał Kopka created CXF-8174:
--------------------------------

             Summary: Incorrect service method resolution
                 Key: CXF-8174
                 URL: https://issues.apache.org/jira/browse/CXF-8174
             Project: CXF
          Issue Type: Bug
          Components: JAX-RS
    Affects Versions: 3.3.0, 3.2.8
            Reporter: Rafał Kopka


Assume JAX-RS resource classes:
{code}
public interface TestService<REQ extends com.test.BaseRequest, RES extends 
com.test.BaseResponse> {
        RES process(REQ request);
    }
{code}
{code}
    public interface MyTestService extends 
TestService<com.test.MyTestServiceRequest, com.test.MyTestServiceResponse> {

        @Override
        @POST
        @Path("record")
        @Valid
        com.test.MyTestServiceResponse process(com.test.MyTestServiceRequest 
request);
    }
{code}

When we call MyTestService,  CXF resolves method from TestService
{code}
com.test.BaseResponse process(com.test.BaseRequest request)
{code}
This causes Jackson deserialization error due to unknown properties sent in 
{code}
com.test.MyTestServiceResponse
{code}

This occurs due to changes in OperationResourceInfoComparator (CXF-7946) where 
parameter class names are compared.

Explicit package in the sample is due to the fact that there is an easy 
workaround - remove all extends from parent interface. This won't work if your 
package is anything after java.lang





--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to