Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jersey java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer

I'm trying to make a web-service with Tomcat and Eclipse using jersey library. This is my service class:

package com.gontuseries.university;

import javax.ws.rs.core.MediaType;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;


@Path("/university")
public class UniversityRestWs {

    @GET
    @Produces(MediaType.TEXT_HTML)
    public String getHtmlUniversityInfo(){
        return "<html><body>test</body></html>";
    }

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String getTextUniversityInfo(){
        return "test";
    }
}

And this is file web.xml

 <servlet>
 <servlet-name>Jersey REST Service</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.gontuseries.university</param-value>
 </init-param>
 </servlet>
 <servlet-mapping>
 <servlet-name>Jersey REST Service</servlet-name>
 <url-pattern>/rest/*</url-pattern>
 </servlet-mapping>

When i test my service i get java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer I downloaded jersey from https://jersey.java.net/download.html

Can someone help me? Thanks

like image 349
user2607498 Avatar asked Jul 22 '13 16:07

user2607498


3 Answers

For me the problem was that the server had no jars in the lib folder. Make sure it has access to all dependencies in: project -> properties -> development assembly -> add -> java build path entries.

like image 134
Eran Avatar answered Nov 14 '22 13:11

Eran


We need to use provide build path to Eclipse. That must resolve issue.

Make sure it has access to all dependencies in: project -> properties -> development assembly -> add -> java build path entries --> maven dependency

jersey bundle dependency

<dependency>
   <groupId>com.sun.jersey</groupId>
   <artifactId>jersey-servlet</artifactId>
   <version>1.17</version>
<dependency>

If you are using maven, best few simple steps will work your application

like image 41
Swarit Agarwal Avatar answered Nov 14 '22 15:11

Swarit Agarwal


Man, I had the same problem. I solve id adding the jersey-servlet-1.18.jar to the WEB-INF/lib. Then, this folder saw like this:

.
Remember, add all this jars to yout build-path

like image 7
Natan Lotério Avatar answered Nov 14 '22 15:11

Natan Lotério