我正在尝试使用带邮递员的java中的rest web服务将数据插入到数据库中。 我的Java代码如下:
CourseService.java中的代码:
@POST
@Path("/createUser")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public String createUser(Course course) {
Course.java中的代码:
package dto;
public class Course
{
private int id;
private String login;
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
@Override
public String toString()
{
return "Course [id=" + id + ", name=" + login +"]";
}
}
我在尝试从邮递员发布数据时收到如下错误:
com.sun.jersey.spi.container.ContainerRequest getEntity SEVERE:A 消息体阅读器,用于Java类型,类dto.Course和MIME媒体 类型,application / json,未找到
答案 0 :(得分:0)
您需要使用Course
为@XmlRootElement
课程注释,如下所示,以便jersey
可以将输入json
序列化为Course
。
另外,请确保您在类路径中有jersey-jars。
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Course { ... }
答案 1 :(得分:0)
@XmlRootElement是在使用JAXB(JSR-222)时常用的注释。它的目的是将根元素与类唯一关联。 JAXB类映射到复杂类型,您的类可以对应多个根元素。
您可能需要使用
注释您的POJO课程类package dto;
import javax.xml.bind.annotation.XmlRootElement
@XmlRootElement(name = "YourPreferredName")
public class Course
{