Java @接受Json值的Rest服务中的Post
我一直在努力学习@POST使用Jersey创建Web服务。 我现在可以使用普通参数完全调整@Get和@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
@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,唯一的条件是它必须在整个应用程序中唯一。