public static void injectThroughMethod(Object requestObject, Method method, Object parameterValue, Message inMessage) { try { Method methodToInvoke = checkProxy(method, requestObject); methodToInvoke.invoke(requestObject, new Object[]{parameterValue}); } catch (IllegalAccessException ex) { reportServerError("METHOD_ACCESS_FAILURE", method.getName()); } catch (InvocationTargetException ex) { LOG.log(Level.SEVERE, ex.getCause().getMessage(), ex); Response r = JAXRSUtils.convertFaultToResponse(ex.getCause(), inMessage); if (r != null) { inMessage.getExchange().put(Response.class, r); throw new WebApplicationException(); } reportServerError("METHOD_ACCESS_FAILURE", method.getName()); } catch (Exception ex) { reportServerError("METHOD_INJECTION_FAILURE", method.getName()); } }
@Override public Object invoke(final Exchange exchange, final Object o) { try { final Response.ResponseBuilder proceed = new InvocationContext(enrichers, exchange, o).proceed(); if (proceed != null) { final Response response = proceed.build(); if (response.getEntity() != null && response.getEntity() instanceof Throwable) { Throwable throwable = Throwable.class.cast(response.getEntity()); throw new WadlInvokerException(throwable); } return new MessageContentsList(response); } return null; } catch (final RuntimeException re) { return new MessageContentsList(JAXRSUtils.convertFaultToResponse(re, exchange.getInMessage())); } } }
public static void injectThroughMethod(Object requestObject, Method method, Object parameterValue, Message inMessage) { try { Method methodToInvoke = checkProxy(method, requestObject); methodToInvoke.invoke(requestObject, new Object[]{parameterValue}); } catch (IllegalAccessException ex) { reportServerError("METHOD_ACCESS_FAILURE", method.getName()); } catch (InvocationTargetException ex) { Response r = JAXRSUtils.convertFaultToResponse(ex.getCause(), inMessage); if (r != null) { inMessage.getExchange().put(Response.class, r); throw new WebApplicationException(); } reportServerError("METHOD_ACCESS_FAILURE", method.getName()); } catch (Exception ex) { reportServerError("METHOD_INJECTION_FAILURE", method.getName()); } }
private void handleWriteException(ProviderFactory pf, Message message, Throwable ex, boolean firstTry) { Response excResponse = null; if (firstTry) { excResponse = JAXRSUtils.convertFaultToResponse(ex, message); } if (excResponse == null) { setResponseStatus(message, 500); throw ExceptionUtils.toInternalServerErrorException(ex, null); } else { serializeMessage(pf, message, excResponse, null, false); } }
protected Object createInstance(Message m) { Object[] values = ResourceUtils.createConstructorArguments(c, m); try { Object instance = values.length > 0 ? c.newInstance(values) : c.newInstance(new Object[]{}); InjectionUtils.invokeLifeCycleMethod(instance, postConstructMethod); return instance; } catch (InstantiationException ex) { String msg = "Resource class " + c.getDeclaringClass().getName() + " can not be instantiated"; throw ExceptionUtils.toInternalServerErrorException(null, serverError(msg)); } catch (IllegalAccessException ex) { String msg = "Resource class " + c.getDeclaringClass().getName() + " can not be instantiated" + " due to IllegalAccessException"; throw ExceptionUtils.toInternalServerErrorException(null, serverError(msg)); } catch (InvocationTargetException ex) { Response r = JAXRSUtils.convertFaultToResponse(ex.getCause(), m); if (r != null) { m.getExchange().put(Response.class, r); throw new WebApplicationException(); } String msg = "Resource class " + c.getDeclaringClass().getName() + " can not be instantiated" + " due to InvocationTargetException"; throw ExceptionUtils.toInternalServerErrorException(null, serverError(msg)); } }
protected Object createInstance(Message m) { ProviderInfo<?> application = (ProviderInfo<?>)m.getExchange().getEndpoint().get(Application.class.getName()); Map<Class<?>, Object> mapValues = CastUtils.cast(application == null ? null : Collections.singletonMap(Application.class, application.getProvider())); Object[] values = ResourceUtils.createConstructorArguments(c, m, true, mapValues, params, anns, genericTypes); try { Object instance = values.length > 0 ? c.newInstance(values) : c.newInstance(new Object[]{}); InjectionUtils.invokeLifeCycleMethod(instance, postConstructMethod); return instance; } catch (InstantiationException ex) { String msg = "Resource class " + c.getDeclaringClass().getName() + " can not be instantiated"; throw ExceptionUtils.toInternalServerErrorException(null, serverError(msg)); } catch (IllegalAccessException ex) { String msg = "Resource class " + c.getDeclaringClass().getName() + " can not be instantiated" + " due to IllegalAccessException"; throw ExceptionUtils.toInternalServerErrorException(null, serverError(msg)); } catch (InvocationTargetException ex) { Response r = JAXRSUtils.convertFaultToResponse(ex.getCause(), m); if (r != null) { m.getExchange().put(Response.class, r); throw new WebApplicationException(); } String msg = "Resource class " + c.getDeclaringClass().getName() + " can not be instantiated" + " due to InvocationTargetException"; throw ExceptionUtils.toInternalServerErrorException(null, serverError(msg)); } }
private Object handleFault(Fault ex, Message inMessage, ClassResourceInfo cri, Method methodToInvoke) { String errorMessage = ex.getMessage(); if (errorMessage != null && cri != null && errorMessage.contains(PROXY_INVOCATION_ERROR_FRAGMENT)) { org.apache.cxf.common.i18n.Message errorM = new org.apache.cxf.common.i18n.Message("PROXY_INVOCATION_FAILURE", BUNDLE, methodToInvoke, cri.getServiceClass().getName()); LOG.severe(errorM.toString()); } Response excResponse = JAXRSUtils.convertFaultToResponse(ex.getCause() == null ? ex : ex.getCause(), inMessage); if (excResponse == null) { inMessage.getExchange().put(Message.PROPOGATE_EXCEPTION, ExceptionUtils.propogateException(inMessage)); throw ex; } return new MessageContentsList(excResponse); }
private void handleWriteException(ServerProviderFactory pf, Message message, Throwable ex, boolean firstTry) { Response excResponse = null; if (firstTry) { excResponse = JAXRSUtils.convertFaultToResponse(ex, message); } else { message.getExchange().put(JAXRSUtils.SECOND_JAXRS_EXCEPTION, Boolean.TRUE); } if (excResponse == null) { setResponseStatus(message, 500); throw new Fault(ex); } serializeMessage(pf, message, excResponse, null, false); }
private void convertExceptionToResponseIfPossible(Throwable ex, Message message) { Response excResponse = JAXRSUtils.convertFaultToResponse(ex, message); if (excResponse == null) { ProviderFactory.getInstance(message).clearThreadLocalProxies(); message.getExchange().put(Message.PROPOGATE_EXCEPTION, ExceptionUtils.propogateException(message)); throw ex instanceof RuntimeException ? (RuntimeException)ex : ExceptionUtils.toInternalServerErrorException(ex, null); } message.getExchange().put(Response.class, excResponse); }
private Object handleFault(Fault ex, Message inMessage, ClassResourceInfo cri, Method methodToInvoke) { String errorMessage = ex.getMessage(); if (errorMessage != null && cri != null && errorMessage.contains(PROXY_INVOCATION_ERROR_FRAGMENT)) { org.apache.cxf.common.i18n.Message errorM = new org.apache.cxf.common.i18n.Message("PROXY_INVOCATION_FAILURE", BUNDLE, methodToInvoke, cri.getServiceClass().getName()); LOG.severe(errorM.toString()); } Response excResponse = JAXRSUtils.convertFaultToResponse(ex.getCause(), inMessage); if (excResponse == null) { ProviderFactory.getInstance(inMessage).clearThreadLocalProxies(); ClassResourceInfo criRoot = (ClassResourceInfo)inMessage.getExchange().get(JAXRSUtils.ROOT_RESOURCE_CLASS); if (criRoot != null) { criRoot.clearThreadLocalProxies(); } inMessage.getExchange().put(Message.PROPOGATE_EXCEPTION, ExceptionUtils.propogateException(inMessage)); throw ex; } return new MessageContentsList(excResponse); }
private void convertExceptionToResponseIfPossible(Throwable ex, Message message) { Response excResponse = JAXRSUtils.convertFaultToResponse(ex, message); if (excResponse == null) { ServerProviderFactory.getInstance(message).clearThreadLocalProxies(); message.getExchange().put(Message.PROPOGATE_EXCEPTION, ExceptionUtils.propogateException(message)); throw ex instanceof RuntimeException ? (RuntimeException)ex : ExceptionUtils.toInternalServerErrorException(ex, null); } message.getExchange().put(Response.class, excResponse); message.getExchange().put(Throwable.class, ex); }
ex = ((Fault)ex).getCause(); Response r = JAXRSUtils.convertFaultToResponse(ex, message); if (r != null) { message.removeContent(Exception.class);
ex = ((Fault)ex).getCause(); Response r = JAXRSUtils.convertFaultToResponse(ex, message); if (r != null) { message.removeContent(Exception.class);
Response resp = JAXRSUtils.convertFaultToResponse(ex, inMessage); if (resp == null) { resp = JAXRSUtils.convertFaultToResponse(ex, inMessage); null, null, 200, true); } else { excResponse = JAXRSUtils.convertFaultToResponse(ex, inMessage);
Response r = JAXRSUtils.convertFaultToResponse(f.getCause(), message); if (r != null) { JAXRSUtils.setMessageContentType(message, r);
Response resp = JAXRSUtils.convertFaultToResponse(ex, inMessage); if (resp == null) { resp = JAXRSUtils.convertFaultToResponse(ex, inMessage); excResponse = JAXRSUtils.createResponse(subCri, null, null, 200, true); } else { excResponse = JAXRSUtils.convertFaultToResponse(ex, inMessage);