java - 如何使用 JSON 数据对 Jersey rest 服务进行 post ajax 调用?

标签 java ajax post jersey jax-rs

我经历过这个link .但这并没有帮助我。

我正在使用 jersey lib v1.17.1。 我的 Jersey 休息服务:

@POST
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
@Path("/post1")
public ResponseBean post1(@QueryParam("param1")String param1)
{
    return ResponseFactory.createResponse(param1, "TEST", "TEST", null, true);
}

网址是:/test/post1

我的 ajax 调用:

var d = {"param1":"just a dummy data"};
    $.ajax({
        type : "POST",
        url : "http://localhost:7070/scl/rs/test/post1",
        contentType :"application/json; charSet=UTF-8",
        data : d,
        dataType : "json"
    })
    .done(function(data){
        console.log(data);
    })
    .fail(function(data){
        console.log(data);
    });

它命中我的休息服务,但作为 param1 我总是得到空值。替代解决方案是添加带有 @XMLRootElement 的 JavaBean,这会将 java 对象编码/解码为 json,反之亦然,但我不想使用它。
有什么方法可以使用 @QueryParam 之类的适当注释来发布和接收数据吗? 请帮忙

最佳答案

你的服务器端代码应该是这样的:

@POST
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
@Path("/post1")
public ResponseBean post1(Data param1)
{
    return ResponseFactory.createResponse(param1, "TEST", "TEST", null, true);
}

其中 Data 是一个用 @XmlRootElement 注释的 (POJO) 类,对应于您的客户端将发送的 JSON 数据(即,有一个 param1 带有 getter 和 setter 的字段)。 JAX-RS 实现会将 POST 的主体解码为 Data 的实例。

@QueryParam 注释用于检索(通常)GET 请求中的查询参数。查询参数是问号(?)之后的参数。例如:@QueryParam("start") String start 将在处理以下请求时映射设置为 1:GET http://foo.com/bar?start=1,但这不是你在你的情况下所做的,AFAICS。

关于java - 如何使用 JSON 数据对 Jersey rest 服务进行 post ajax 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21699745/

相关文章:

javascript - 对 Django 表单的 AJAX 或 Javascript POST 请求并获取结果

java - 我如何访问 JSP 中的 ActionBeanContext?

javascript - 8 :00AM on specific date when the App got completely closed? 如何通知用户

jquery - 如何设置 jQuery ajax 帖子的 contentType 以便 ASP.NET MVC 可以读取它?

python - 如何使用标准 Python 库使用文件参数触发经过身份验证的 Jenkins 作业

javascript - 如何在 Node.js 请求中发布多个相同名称的值

Java Scanner 通过读取带有空格的字符串来忽略接下来的问题

java - 由于在Java中所有对象都是用 "new"创建的,这是否意味着它们都是在Heap上创建的?

javascript - Highcharts ajax 加载工具提示

javascript - ajax-jquery post,服务器未收到任何表单数据