我将以下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.如果我使用@GET而不是@POST,则timeInMS等于100。
我做错了什么?
以下代码:
ResteasyProviderFactory.getContextData(HttpServletRequest.class).getParameter("status");
告诉我状态的结果是“100”(一个字符串,但可以转换为long)...为什么在使用@POST(或者@PUT)时没有在timeInMS中插入值?
答案 0 :(得分:0)
将注释@QueryParam("status")
更改为@FormParam("status")
。然后将contentType
更改为application/x-www-form-urlencoded
。
或者将url
更改为http://localhost/services/v1/online/123/abc?status=100