Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @接受Json值的Rest服务中的Post_Java_Rest_Tomcat_Jersey - Fatal编程技术网

Java @接受Json值的Rest服务中的Post

Java @接受Json值的Rest服务中的Post,java,rest,tomcat,jersey,Java,Rest,Tomcat,Jersey,我一直在努力学习@POST使用Jersey创建Web服务。 我现在可以使用普通参数完全调整@Get和@Post。 比如说, @POST @Path("/{param}") public Response postMsg(@PathParam("param") String msg) { String output = "POST:Jersey say : " + msg; return Response.status(200).entity(out

我一直在努力学习@POST使用Jersey创建Web服务。 我现在可以使用普通参数完全调整@Get和@Post。 比如说,

@POST
    @Path("/{param}")
    public Response postMsg(@PathParam("param") String msg) {
        String output = "POST:Jersey say : " + msg;
        return Response.status(200).entity(output).build();
    }
然而,我不确定我应该如何接受JSON消息并通过url创建或处理它


任何示例都将不胜感激。


@Consumes
注释用于指定资源可以接受的MIME媒体表示类型。
为了更好地理解,请遵循此说明。

创建一个数据传输对象,该对象将用于使用从UI发送的JSON并直接使用它@Consume可用于配置从UI发送的数据类型格式,可以是JSON或表单提交等

@POST
@Path("/{param}")
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
public Response postMsg(UserData userData) {
   ...
}


public class UserData {

    private String userName;
    private String userAddress;
    ... 
    define getter setter 

}


// UI JSON call 

    var url = "rest/employee";
    var type = "POST";
    var data = {
        userName : $("#txtEmpFirstName").val(),
        userAddress : $("#txtEmpLastName").val(),
    };


    $.ajax({
        type : type,
        url : url,
        data : JSON.stringify(data),
        contentType: "application/json",
        success : function(data) {
             alert(data.Success);
             resetEmployee();
             searchEmployee();
        }, error : function(error){ alert(JSON.stringify(error.responseText));}
    });

返回json如何这是一个很好的方法,但我不想在链接中添加{param}。我希望能够从rest客户端测试人员(如postman)中进行测试。您可以定义如下@Path(“/users”)之类的onw url,唯一的条件是它必须在整个应用程序中唯一。