RestEasy方法在POST方法的情况下接收null作为参数并且对Get Method工作正常

时间:2015-04-22 19:15:07

标签: ajax json rest jax-rs resteasy

我创建了一个RestEasy网络服务,并使用获取方法并使用 http://localhost:8080/rest/search?name=foo 等URI将参数传递给服务,并通过使用来访问这些参数  @QueryParam,它工作正常: 注意:我使用ajax调用

调用Web服务
@GET
@Path("/search")
@Consumes({"application/xml", "application/json", "text/plain"})
@Produces( MediaType.TEXT_PLAIN)
public JSONArray getDetails(@QueryParam("name") String name) {
         //my code here 
}

我的ajax电话

$.ajax({
    type : 'get',
        url : searchURL,
        headers : { 'SM_USER' : userId  },
        dataType : 'json',
        success : function(data) {

现在我必须将方法从GET更改为POST,在这种情况下,它不接受URI参数,现在我尝试了以不同的方式: 现在我通过ajax数据传递值。 Ajax Call:

 $.ajax({
    type : 'post',
    url : searchSuppURL,
    headers : { 'SM_USER' : userId},
    contentType: "application/json",
    data: { 'name' : 'foo'},
    dataType : 'json'
success : function(data) {

网络服务代码:

@POST
@Path("/search")
//@Consumes({"application/x-www-form-urlencoded"})
@Consumes({"application/xml", "application/json", "text/plain"})
@Produces( MediaType.TEXT_PLAIN)
public JSONArray getDetails(String name) {

数据现在可供服务使用,但格式不正确我有sysout吗

System.out.println("name...." +name);

而不是打印名称.... foo 它正在打印名称....名称= foo

我没有得到任何建议......

先谢谢

1 个答案:

答案 0 :(得分:1)

我想简单地获取一个String值,然后使用

$ adb devices
List of devices attached
emulator-5560 device

$ telnet localhost 5560
Connected to localhost.
Escape character is '^]'.
Android Console: type 'help' for a list of commands
OK
window scale 0.75
OK
像你想做的那样。摆脱ajax请求中的@Consumes({"application/x-www-form-urlencoded"}) (默认为contentType。并在资源方法中添加application/x-www-form-urlencoded注释

@FormParam