認識できないパターンで発生する次のエラーを修正するための戦略を策定するのを誰かが手伝ってくれれば幸いです。ほとんどの場合、エラーは発生せず、約 90% の確率で成功しています。
ERROR [org.jboss.resteasy.core.SynchronousDispatcher] Failed executing POST /toys/customer25/insert
org.jboss.resteasy.plugins.providers.jaxb.JAXBUnmarshalException: Unexpected end of stream
このエラーを単にコンソールに記録するにはどうすればよいですか? このメソッドが受信している JSON をキャプチャして、このエラーの原因を突き止めたいと思います。サーバーログで確認できます。
私がやっていることは、Toy
オブジェクトの配列を JSON 形式でサーバーに POST することです。つまり、クライアントでToy
オブジェクトをToy
JSON に変換します。私が送信している文字列は次のようなものです。 [{"toyName":"buzzlightyear", "toyMaker":"mattel"}]
私の理解では、JSON を jax-rs restful サービスに POST すると、jax-rs 実装 (私は RESTeasy 1.2 を使用しています) が自動的にその JSON 文字列を JavaToy
オブジェクトに変換します。
Toy
オブジェクトを挿入する POST を処理するための Java JAX-RS restful サービスの私のコードは次のとおりです。
@POST
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.TEXT_PLAIN})
@Path("toy/{customer}/insert")
public String insertToys(@PathParam("customer") String customer, List<Toy> toys);
JSON 文字列の問題点をログに記録/キャプチャするにはどうすればよいですか? insertToys()
メソッドが呼び出されたときに、システムがJSONからToyオブジェクトへの変換を処理しているように思えます。そのため、デバッグ方法を理解するのは困難です。
誰かが私のために戦略を立てることができますか? おそらくエスケープされていない文字から、不正な形式の JSON を渡している可能性はどのくらいですか? 対エンティティのマッピングが間違っていますか? ありがとう!