0

I am trying to write a REST service with JSON. When I am running my project in eclipse I am getting below exception.

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

I have checked for solution in other stackoverflow question, it's not helped me. Can anyone suggest what I missed?

POM dependencies :

<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>

Service class :

@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();
    }

}

My 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>
Arty
  • 819
  • 3
  • 13
  • 24
Ramesh
  • 340
  • 1
  • 7
  • 21

2 Answers2

1

look for ServletContainer Class in jersy-server 1.8 jar file package name com.sun.jersey.spi.container.servlet if it is not present then add new jar file which contains ServletContainer class file

vishal27
  • 11
  • 2
-1

If you are using Jersey then you need to add @XmlrootElement at the Student class level and provide the name.