Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ClassNotFoundException when starting tomcat

Tags:

I'm trying to make a REST web service.

My project looks like :

enter image description here

The traceback is :

8 déc. 2011 18:31:36 org.apache.catalina.core.AprLifecycleListener init INFO: The Apache Tomcat Native library which allows optimal performance in production     environments was not found on the java.library.path: C:\Program Files\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\bin;C:\Program Files\MyEclipse\Common\plugins\com.genuitec.eclipse.easie.tomcat.myeclipse_9.0.0.me201109141806\tomcat\bin 8 déc. 2011 18:31:36 org.apache.coyote.http11.Http11Protocol init INFO: Initialisation de Coyote HTTP/1.1 sur http-8080 8 déc. 2011 18:31:36 org.apache.catalina.startup.Catalina load INFO: Initialization processed in 394 ms 8 déc. 2011 18:31:37 org.apache.catalina.core.StandardService start INFO: Démarrage du service Catalina 8 déc. 2011 18:31:37 org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/6.0.13 8 déc. 2011 18:31:37 org.apache.catalina.startup.HostConfig deployWAR INFO: Déploiement de l'archive Test-0.0.1-SNAPSHOT.war de l'application web 8 déc. 2011 18:31:37 org.apache.catalina.loader.WebappClassLoader validateJarFile INFO: validateJarFile(C:\Documents and Settings\Naya\Workspaces\MyEclipse 10\.metadata\.me_tcat\webapps\Test-0.0.1-SNAPSHOT\WEB-INF\lib\javax.servlet-3.0.1.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class 8 déc. 2011 18:31:37 org.apache.catalina.loader.WebappClassLoader validateJarFile INFO: validateJarFile(C:\Documents and Settings\Naya\Workspaces\MyEclipse 10\.metadata\.me_tcat\webapps\Test-0.0.1-SNAPSHOT\WEB-INF\lib\servlet-api-2.5.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class 8 déc. 2011 18:31:38 org.apache.catalina.core.ApplicationContext log INFO: La servlet Test JAX-RS REST Servlet est marqué comme indisponible 8 déc. 2011 18:31:38 org.apache.catalina.core.ApplicationContext log GRAVE: Error loading WebappClassLoader delegate: false   repositories:     /WEB-INF/classes/ ----------> Parent Classloader: org.apache.catalina.loader.StandardClassLoader@19e8329  com.sun.jersey.spi.container.servlet.ServletContainer java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1083)     at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)     at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4042)     at org.apache.catalina.core.StandardContext.start(StandardContext.java:4348)     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)     at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825)     at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714)     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)     at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)     at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)     at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)     at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)     at org.apache.catalina.core.StandardService.start(StandardService.java:516)     at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)     at org.apache.catalina.startup.Catalina.start(Catalina.java:566)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     at java.lang.reflect.Method.invoke(Method.java:597)     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 

My web.xml :

<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0"      xmlns="http://java.sun.com/xml/ns/javaee"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">   <display-name></display-name>    <servlet>     <display-name>Test JAX-RS REST Servlet</display-name>     <servlet-name>Test JAX-RS REST Servlet</servlet-name>     <servlet-class>         com.sun.jersey.spi.container.servlet.ServletContainer     </servlet-class>   </servlet>   <servlet-mapping>     <servlet-name>Test JAX-RS REST Servlet</servlet-name>     <url-pattern>/services/*</url-pattern>   </servlet-mapping>   <welcome-file-list>     <welcome-file>index.jsp</welcome-file>   </welcome-file-list> </web-app> 

Can anyone help me ?

like image 266
Seb P Avatar asked Dec 09 '11 10:12

Seb P


1 Answers

Solution:

Only add the dependency in pom.xml:

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

Now your application will have the class com.sun.jersey.spi.container.servlet.ServletContainer

ps: Remember to check if the libraries are being sent to the tomcat deploy.

To check:

Right-click on your project -> Properties -> Deployment Assembler and make sure the Source tab contains Maven Dependecies.

Otherwise:

Click on button Add -> Java Build Path -> Maven Dependecies -> Finish.

Ready whenever you run the application all the libs will be imported in the deploy.

ps: Where the Maven project is updated, you must remake these steps.

like image 104
Diego Avatar answered Oct 19 '22 08:10

Diego