gpt4 book ai didi

java - Jersey 方法不允许 405

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:28:26 25 4
gpt4 key购买 nike

我是其他服务的新手。我正在尝试创建一个接受来自客户端的 json 字符串的服务。当我使用 JQuery 调用此服务时出现 405 错误。下面是 ws 的 Java 代码:

@POST
@Path("logevent")
@Consumes(MediaType.APPLICATION_JSON)
public boolean logEvent(String obj)
{
System.out.println(obj);
return true;
}

@Path("getdata")
@GET
public String getData()
{
return "Hello";
}

用于发布 JSON 的 jQuery 代码是:

var json ="{\"userName\":\"testtest\"}";
var json_data = JSON.stringify(json);

$.ajax({
type: "POST",
url: "http://localhost:8080/log/log/logevent",
// The key needs to match your method's input parameter (case-sensitive).
data: json_data,
contentType: "application/json",
dataType: "json",
success: function(data){alert(data);},
failure: function(errMsg) {
alert(errMsg);
}

出了什么问题?该帖子无效,但是当我使用 URL http://<serverip>/log/log/getdata 点击获取时我收到回复。

最佳答案

JSON MessageBodyReader 能够将 JSON 流解码为 JAXB bean(或 POJO),但不能解码为字符串。创建一个 JAXB bean,如:

@XmlRootElement
public class User {

private String userName;

public String getUserName() {
return userName;
}

public void setUserName(final String userName) {
this.userName = userName;
}
}

并将您的 POST 资源方法更改为:

@POST
@Path("logevent")
@Consumes(MediaType.APPLICATION_JSON)
public boolean logEvent(User obj) {}

关于java - Jersey 方法不允许 405,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18147772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com