我有一个在 JBoss EAP 5 上运行的 Web 服务应用程序(使用 JAX-RS),前面有 Apache。我正在编组 XML 的类如下所示:
@XmlRootElement(name = "newRequest")
public class NewRequest {
@XmlElement(required = false, name = "Guid")
public String guid;
@XmlElement(required = false, name = "AuthorizedBy")
public String authorizedBy;
}
以及处理请求的实际代码:
@Path("/newrequest")
public class NewResource {
private static final Logger logger = Logger.getLogger(NewResource.class);
@PUT
@Consumes({"application/xml", "application/json"})
@Produces({"application/xml", "application/json"})
public String processNewRequest(@HeaderParam("Authorization") String authorization, NewRequest request) {
...
}
...
}
我在 Apache access_log 中看到了请求:
10.1.4.55 - qa [26/Jun/2013:13:34:16 -0500] "PUT /rest/newrequest HTTP/1.1" 400 961 "-" "Apache-HttpClient/4.2.1 (java 1.5)" 135807 961
但 JBoss 日志中没有任何内容。当我故意在我的 XML 中拼错某些内容时会产生 400 错误(使用 JMeter 发送请求;输入“nwe”而不是“new”。有什么方法可以让我捕捉到这个错误并找出哪个元素是错误的) ? 我确实读过有关 JAX-RS 异常映射器的信息,但以前从未使用过它们,并且不确定它们是否是处理此问题的正确方法。