[ 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