Scenario 1 All jax-rs annotation are applied on interface. No jax-rs annotation are applied on class. @POST @Consumes({ APPLICATION_XML }) method1(InputStream istream) @POST @Consumes({ APPLICATION_FORM_URLENCODED }) method2a(@FormParam("") final Pojo2 p2) -> won't detect it as a resource method @POST @Consumes({ APPLICATION_FORM_URLENCODED }) @Produces({ APPLICATION_XML }) @Path("/method2b") method2b(@FormParam("") final Pojo2 p2) Scenario 2 All jax-rs annotation are applied on interface as specified above in scenario 1. The class only have the jax-rs annotations specified below. @Override method2a(@FormParam("") final Pojo2 p2) -> won't detect it as a resource method @Override method2b(@FormParam("") final Pojo2 p2) -> won't detect it as a resource method Scenario 3 All jax-rs annotation are applied on interface as specified above in scenario 1. The class only have the jax-rs annotations specified below. @Override method1(InputStream istream) @Override @POST @Consumes({ APPLICATION_FORM_URLENCODED }) method2a(@FormParam("") final Pojo2 p2) @Override @POST @Consumes({ APPLICATION_FORM_URLENCODED }) @Produces({ APPLICATION_XML }) @Path("/method2b") method2b(@FormParam("") final Pojo2 p2) Everything is working as expected. Scenario 4 All jax-rs annotation are applied on interface as specified above in scenario 1. The class only have the jax-rs annotations specified below. @Override method1(InputStream istream) @Override @POST method2a(final Pojo2 p2) @Override method2b(final Pojo2 p2) method2a is mapped to mediaType="*/*" (though the interface is specifying application/x-www-form-urlencoded). method2a won't accept application/x-www-form-urlencoded payload (seems to ignore @FormParam annotation from interface). Everything else is working as expected. Scenario 5 All jax-rs annotation are applied on interface as specified above in scenario 1. The class only have the jax-rs annotations specified below. @Override method1(InputStream istream) @Override @POST @Consumes({ APPLICATION_FORM_URLENCODED }) method2a(final Pojo2 p2) @Override method2b(final Pojo2 p2) method2a is mapped to mediaType="application/x-www-form-urlencoded" (as the interface is specifying). method2a won't accept application/x-www-form-urlencoded payload (seems to ignore @FormParam annotation from interface). Everything else is working as expected. Scenario 6 All jax-rs annotation are applied on interface as specified above in scenario 1. The class only have the jax-rs annotations specified below. @Override method1(InputStream istream) @Override @POST method2a(@FormParam("") final Pojo2 p2) @Override method2b(final Pojo2 p2) Everything is working as expected. CXF JAX-RS configuration: http://cxf.apache.org/docs/jaxrs-services-configuration.html CXF specific QueryParam("") - CXF extension supporting the injection of all the parameters of specific JAX-RS type (example, QueryParam("") MyBean). StreamingResponse- use it instead of StreamingOutput in order to auto-serialize T