REST中的ServletContainer问题

时间:2018-02-23 11:13:29

标签: java json rest web-services

我正在尝试使用JSON编写REST服务。当我在eclipse中运行我的项目时,我遇到了异常。

SEVERE: Servlet [jersey-serlvet] in web application [/Ram] threw load() exception
java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer

我已在其他stackoverflow问题中检查了解决方案,但它对我没有帮助。 谁能提出我错过的建议?

POM依赖项:

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-server</artifactId>
    <version>1.8</version>
</dependency>

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-json</artifactId>
    <version>1.8</version>
</dependency>

服务类:

@Path("/getJson")
public class JsonExWithPojo {

    @GET
    @Path("/getStudent/{name}")
    @Produces(MediaType.APPLICATION_JSON)
    public Student getStudent(@PathParam("name") String name) {

        Student student = new Student();
        student.setStudentNo(418);
        student.setStudentName(name);
        student.setStudentAge(30);
        return student;
    }

    @GET
    @Produces("text/html")
    public Response sayHello() {
        return Response.status(200).build();
    }

}

我的POJO:

public class Student {

    private int studentNo;
    private String studentName;
    private int studentAge;
    //setters and getters

}

的web.xml

    <servlet>
        <servlet-name>jersey-serlvet</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.example.myproject</param-value>
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>jersey-serlvet</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>

2 个答案:

答案 0 :(得分:1)

查找ServletContainer类 jersy-server 1.8 jar文件 包名com.sun.jersey.spi.container.servlet 如果它不存在则添加包含ServletContainer的新jar文件 类文件

答案 1 :(得分:-1)

如果您使用的是Jersey,则需要在Student类级别添加@XmlrootElement并提供名称。