java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer
eclipse, google-app-engine, jakarta-ee, jersey, jersey-2.0
Solution
You have downloaded Jersey 2 (which RI of JAX-RS 2). The tutorial you're referring to uses Jersey 1. Download Jersey 1.17.1 from (here), should be sufficient for you.
Jersey 1 uses `com.sun.jersey`, and Jersey 2 uses `org.glassfish.jersey` hence the exception.
Also note that also `init-param` starting with `com.sun.jersey` won't be recognized by Jersey 2.
Edit
Registering Resources and Providers in Jersey 2 contains additional info on how to register classes/instances in Jersey 2.
Problem
I am trying to build a simple hello world application for two days using Jersey + Google app engine. For simple AppEngine project I followed these tutorials and both works just fine https://developers.google.com/appengine/docs/java/gettingstarted/creating https://developers.google.com/appengine/docs/java/webtoolsplatform But now I am trying to add Jersey and following this tutorial http://www.vogella.com/articles/REST/article.html. But server keeps giving me java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer when I add these lines in web.xml: ``` <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>TestServer</display-name> <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.test.myproject</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey REST Service</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app> ``` I have downloaded Jersey `JAX-RS 2.1 RI bundle` from here and have added all jar files in `WEB-INF/lib` folder as described in tutorial. And even after two days nothing is working. I have searched several times on Google and apparently people who are using Maven have solved it somehow but I am not using Maven neither did the guy who wrote that tutorial. Just to check if even `com.sun.jersey.spi.container.servlet.ServletContainer` exists in imported `Jersey jars` I tried to just write this fully qualified name in Java and let the intellisense finish names but I couldn't get any intellisense after `com.sun.je` so my last guess is that there have been some package rearrangement in latest Jersey build and `jersey` is no longer inside `com.sun`. I am exhausted and I would appreciate any kind of help.