JBoss EAP 5 で Apache を前に実行する (JAX-RS を使用する) Web サービスアプリケーションがあります。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 ログには何もありません。その 400 エラーは、XML で意図的にスペルを間違えたときに生成されます (JMeter を使用してリクエストを送信します。「new」の代わりに「nwe」を入力します。このエラーをキャッチして、どの要素が悪いのかを調べる方法はありますか? ? JAX-RS 例外マッパーについて読みましたが、これまで使用したことがなく、この問題を処理する正しい方法であるかどうかもわかりません。