【发布时间】:2018-09-27 07:34:30
【问题描述】:
如果出现 500 错误,有什么方法可以获取在 REST WS PUT 请求中收到的原始 JSON 对象?
这是我的 WS 界面:
public interface VehicleConnectedMileageApi {
public Response updateConnectedVehiclemileage(@ApiParam(value = "vehicle" ,required=true ) Vehicle vehicle)
throws NotFoundException;
}
在我的应用程序上下文 xml 文件中,我使用以下内容来定义 WS:
<!-- For VehicleConnectedMileage -->
<jaxrs:server id="VehicleConnectedMileageREST" address="/mileageManagement">
<jaxrs:serviceBeans>
<ref bean="VehicleConnectedMileageApiImpl" />
</jaxrs:serviceBeans>
<jaxrs:providers>
<bean class="com.europcar.gwy.fleet.utils.error.RuntimeExceptionMapperHandler" />
<bean class="com.europcar.gwy.fleet.utils.error.MappingDataExceptionMapper" />
<bean id="jacksonObjectMapperProvider" class="com.europcar.gwy.fleet.utils.providers.JacksonObjectMapperProvider" />
<bean id="dateParameterConverterProvider" class="com.europcar.gwy.fleet.utils.providers.DateParamConverterProvider" />
<bean id="jacksonProvider" class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" />
</jaxrs:providers>
</jaxrs:server>
但是在上面的那些提供者和映射器中,没有办法访问第一次收到的 Vehicle 对象。
这是一个使用的 RuntimeExceptionMapper 示例:
@Provider
public class RuntimeExceptionMapperHandler implements ExceptionMapper<Exception>{
/** The invalid Data id. */
private String INTERNAL_SERVER_ERROR_ID = ""; // TODO which error Id
private String INTERNAL_SERVER_ERROR_MSG = ""; // TODO which error message
/** The invalid data or content desc. */
private String INTERNAL_SERVER_ERROR_DESC = "An error has occurred during the processing of your request"; // TODO which error desc
/* (non-Javadoc)
* @see javax.ws.rs.ext.ExceptionMapper#toResponse(java.lang.Throwable)
*/
@SuppressWarnings("unchecked")
@Override
public Response toResponse(Exception pEx) {
return ErrorResponseBuilder.prepareInternalServerErrorRequestResponse(INTERNAL_SERVER_ERROR_ID, INTERNAL_SERVER_ERROR_DESC,INTERNAL_SERVER_ERROR_MSG).build();
}
}
但是在这里面没有办法得到第一时间收到的车辆
请帮忙!
【问题讨论】:
标签: json rest web-services jakarta-ee cxf