休息Web服务以在java

时间:2017-12-10 05:31:12

标签: java rest

我正在尝试使用带邮递员的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,未找到

2 个答案:

答案 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
{