[
https://issues.apache.org/jira/browse/CXF-4969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13633855#comment-13633855
]
Antoine Reilles commented on CXF-4969:
--------------------------------------
Checked the cxf sources, it seems that the method
{code:title="org/apache/cxf/jaxrs/utils/InjectionUtils.java"}
public static void injectThroughMethod(Object requestObject,
Method method,
Object parameterValue) {
try {
Method methodToInvoke = checkProxy(method, requestObject);
methodToInvoke.invoke(requestObject, new Object[]{parameterValue});
} catch (IllegalAccessException ex) {
reportServerError("METHOD_ACCESS_FAILURE", method.getName());
} catch (Exception ex) {
reportServerError("METHOD_INJECTION_FAILURE", method.getName());
}
}
{code}
and probably its counterpart {{monospaced}}extractFromMethod{{monospaced}}
could implement something like what is done in
{{monospaced}}JAXRSInvoker.invoke(Exchange exchange, final Object
serviceObject, Method m, List<Object> params){{monospaced}} and extract the
cause from any {{monospaced}}InvocationTargetException{{monospaced}} to report
this instead of simply swallowing it.
> ExceptionMapper not used for exception in resource setter
> ---------------------------------------------------------
>
> Key: CXF-4969
> URL: https://issues.apache.org/jira/browse/CXF-4969
> Project: CXF
> Issue Type: Bug
> Components: JAX-RS
> Affects Versions: 2.6.7
> Environment: tomee-1.6.0-SNAPSHOT
> Reporter: Antoine Reilles
> Attachments: testexceptions-src.zip, testexceptions.war
>
>
> I'm trying to use the cxf extension that allows to map exceptions to
> reponses. The issue I have is that exceptions raised in setXX methods
> annontated with @PathParam for example are caught and produce an internal
> server error. This prevents from performing usefull parameter validation from
> the setter methods, where they could benefit to all services.
> Attached in a sample application that defines a custom mapper, and raises
> exceptions either in a setter or a service method.
> Once deployed, I do get for:
> http://localhost/testexceptions/a/b/fail_in_inject
> where the exception is raised at the setter level an HTTP 500 response, with
> entity
> <ns1:XMLFault
> xmlns:ns1="http://cxf.apache.org/bindings/xformat">
> <ns1:faultstring
>
> xmlns:ns1="http://cxf.apache.org/bindings/xformat">javax.ws.rs.WebApplicationException
> </ns1:faultstring>
> </ns1:XMLFault>
> and a stack in the server logs, when
> http://localhost/testexceptions/a/b/fail_in_serve
> where the exception is raised at service level correctly returns HTTP 400
> One sould be able to use the setter methods (or the resource constructor) to
> perform parameters validation, and property return errors.
> Tested with tomee 1.6.0, which ships with cxf-2.6.7
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira