0

次の 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 に値が挿入されないのはなぜですか?

4

1 に答える 1

0

注釈@QueryParam("status")を に変更し@FormParam("status")ます。次に、 を に変更contentTypeapplication/x-www-form-urlencodedます。

またはに変更urlしますhttp://localhost/services/v1/online/123/abc?status=100

于 2013-06-13T13:09:23.590 に答える