我如何测试 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 上下文中抛出异常,它应该通过映射器。