Details
Description
Assume JAX-RS resource classes:
public interface TestService<REQ extends com.test.BaseRequest, RES extends com.test.BaseResponse> { RES process(REQ request); }
public interface MyTestService extends TestService<com.test.MyTestServiceRequest, com.test.MyTestServiceResponse> { @Override @POST @Path("record") @Valid com.test.MyTestServiceResponse process(com.test.MyTestServiceRequest request); }
When we call MyTestService, CXF resolves method from TestService
com.test.BaseResponse process(com.test.BaseRequest request)
This causes Jackson deserialization error due to unknown properties sent in
com.test.MyTestServiceResponse
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
Attachments
Issue Links
- links to