次の ajax 呼び出しを JBoss サーバーに送信します (jQuery を使用):
$.ajax({
type: "POST",
url: "http://localhost/services/v1/online/123/abc",
data: {
"status": 100
},
contentType: "text/xml; charset=\"UTF-8\"",
success: function(data, textStatus, jqXHR) { },
error: function( jqXHR, textStatus, errorThrown ) { },
dataType: "xml"
});
私の Java コードは次のようになります (@ApplicationPath と class- @Path が正しく設定されているため、以下がトリガーされます)。
@POST
@Path("/{docId}/{secId}")
@Produces(MediaType.TEXT_XML)
public String getSectionAccess(@PathParam("docId") String docId,
@PathParam("secId") String secId,
@QueryParam("status") long timeInMS) {
System.out.println(timeInMS);
}
私の問題は、timeInMS が常に値 0 を返すことです。@POST の代わりに @GET を使用すると、timeInMS は期待どおり 100 になります。
私は何を間違っていますか?
次のコード:
ResteasyProviderFactory.getContextData(HttpServletRequest.class).getParameter("status");
status の結果が "100" (文字列ですが、long に変換可能) であることを示しています... @POST (または @PUT) を使用しているときに timeInMS に値が挿入されないのはなぜですか?