gpt4 book ai didi

java - Jersey 2.27 无法处理 POST

转载 作者:行者123 更新时间:2023-12-01 17:50:32 24 4
gpt4 key购买 nike

我是 Jersey 的新手,一直在尝试为一个简单的 Student REST 资源实现一个 POST 处理程序,该资源由名称和 CIP(另一个字符串)组成。我使用的是 Tomcat 8.5:

public class StudentResource {

String m_name;
String m_cip;

public StudentResource(String p_name, String p_cip) {
m_name = p_name;
m_cip = p_cip;
}

public String getName() {
return m_name;
}

public void setName(String p_name) {
m_name = p_name;
}

public String getCip() {
return m_cip;
}

public void setCip(String p_cip) {
m_cip = p_cip;
}
}

POST 处理程序:

@Path("students")
public class StudentResourceHandler {

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public StudentResource onNewStudent(StudentResource p_newStudent) {
return p_newStudent
}
}

我只想返回我发布的内容...我已经能够在我的 GET 处理程序中处理 JSON,没有错误(即返回 JSON 有效),但不知何故 POST 处理程序总是因以下异常而失败:

javax.servlet.ServletException:javax.ws.rs.ProcessingException:从实体流反序列化对象时出错。

我正在使用 RESTClient 来发出我的请求。这是一个对我来说失败的请求:

标题:

  Content-Type : application/json

正文:

  {
"cip": "gmar2104",
"name": "Marcel"
}

我所做的事情肯定有问题,但我找不到原因。任何帮助,将不胜感激。谢谢。

最佳答案

如果没有默认构造函数,Jackson 就无法实例化。

尝试添加默认构造函数:

public class StudentResource {

String m_name;
String m_cip;

public StudentResource(String p_name, String p_cip) {
m_name = p_name;
m_cip = p_cip;
}

//Default constructor
public StudentResource() {
}

public String getName() {
return m_name;
}

public void setName(String p_name) {
m_name = p_name;
}

public String getCip() {
return m_cip;
}

public void setCip(String p_cip) {
m_cip = p_cip;
}
}

关于java - Jersey 2.27 无法处理 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50662092/

24 4 0
文章推荐: android - 在Android中安排重复任务
文章推荐: java - 如何将 Object 类型转换为 List 类型?