我如何测试 List<Some> 的 MessageBodyWriter?
How can I test a MessageBodyWriter for a List<Some>?
我有一个 JAX-RS 资源方法。
@GET
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public List<Some> list() {
final List<Some> list = get();
// list and each elements are ok.
return list;
}
问题是 application/xml
生成了一个没有任何特定服务器 (tomcat) 日志的 500。
application/json
工作正常。
我为 list
中的每个元素检查 JAXB-marshaller。
我该如何调试它?我如何为 List<Some>
测试任何 MessageBodyWriter
?
更新
这个问题(500 没有错误日志)的根本原因是错误的 JAXB 注释 class。
我按照@peeskillet 的建议创建了一个ExceptionMapper<Exception>
。
@Provider
public class MyExceptionMapper implements ExceptionMapper<Exception> {
@Override
public Response toResponse(final Exception exception) {
exception.printStackTrace(System.err);
return Response.serverError().build();
}
}
然后我可以看到 JAXB 犯了什么错误。我仍然不明白为什么没有报告任何 JAXB 错误。
"How can I debug this?"
有时 errors/exceptions 没有被记录,我会创建一个
ExceptionMapper<Throwable or Exception>
然后只打印堆栈跟踪。如果在 JAX-RS 上下文中抛出异常,它应该通过映射器。
我有一个 JAX-RS 资源方法。
@GET
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public List<Some> list() {
final List<Some> list = get();
// list and each elements are ok.
return list;
}
问题是 application/xml
生成了一个没有任何特定服务器 (tomcat) 日志的 500。
application/json
工作正常。
我为 list
中的每个元素检查 JAXB-marshaller。
我该如何调试它?我如何为 List<Some>
测试任何 MessageBodyWriter
?
更新
这个问题(500 没有错误日志)的根本原因是错误的 JAXB 注释 class。
我按照@peeskillet 的建议创建了一个ExceptionMapper<Exception>
。
@Provider
public class MyExceptionMapper implements ExceptionMapper<Exception> {
@Override
public Response toResponse(final Exception exception) {
exception.printStackTrace(System.err);
return Response.serverError().build();
}
}
然后我可以看到 JAXB 犯了什么错误。我仍然不明白为什么没有报告任何 JAXB 错误。
"How can I debug this?"
有时 errors/exceptions 没有被记录,我会创建一个
ExceptionMapper<Throwable or Exception>
然后只打印堆栈跟踪。如果在 JAX-RS 上下文中抛出异常,它应该通过映射器。