2010-06-03 3 views
2

У меня большая проблема с tomcat.Tomcat автоматически перезапускает веб-приложение при запуске, после ошибки

Перед explaine, позвольте мне сказать это в первый раз, когда я вижу что-то вроде этого ...

Я строю приложение с помощью JPA на Hibernate, Spring 3.0 и Джерси REST Framework.

При использовании GlassFish, все работает отлично, но deployng то же приложение на коте, я зарегистрировал следующий код ошибки:

GRAVE: Error deploying configuration descriptor java-zero.xml 
java.lang.NoClassDefFoundError: com/sun/jersey/spi/container/servlet/ServletContainer 
     at java.lang.ClassLoader.defineClass1(Native Method) 
     at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:616) 
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
     at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2527) 
     at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1010) 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1483) 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361) 
     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1095) 
     at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993) 
     at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4187) 
     at org.apache.catalina.core.StandardContext.start(StandardContext.java:4496) 
     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:546) 
     at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637) 
     at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563) 
     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498) 
     at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277) 
     at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) 
     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) 
     at org.apache.catalina.core.StandardHost.start(StandardHost.java:785) 
     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:519) 
     at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
     at org.apache.catalina.startup.Catalina.start(Catalina.java:581) 
     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:289) 
     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 
Caused by: java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516) 
     at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361) 
     ... 34 more 

Затем кот перезапускает приложение и снова ту же ошибку. В бесконечном цикле.

Похоже библиотеки конфликта, но я действительно не имеют каких-либо идеи о том, как ее решить ...

Любое предложение ценится!

Ciao, Davide.

ответ

4
java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer suggests that you either don't have the Jersey JAR file or you've put it in the wrong place. 

Если это первое, скачать его here и добавить его в Tomcat.

Если это последний, поместите его и все его зависимости в ваш WEB-INF/lib, сервер/lib для Tomcat 5.x или lib для Tomcat 6.x. (Только один, не все.)

Он работает с Glassfish, потому что они связали его для вас. У Томката нет.

+0

Привет, благодарю вас за ваш ответ! Вы будете правы! Я нашел клаузулу сферы в моем пом, я действительно не помню, чтобы ее вставляли, что на самом деле исключает jersey-server jar во время выполнения.

  com.sun.jersey jersey-server ${jersey.version} provided  
Большое спасибо, Davide – Davide

1

Похоже, что jersey.jar и/или jsr311-api.jar отсутствуют на вашем веб-сервере. Вы можете проверить, что они находятся в папке WEB-INF/lib.

2

Удалить все Джерси JAR из папки /WEB_INF/lib, обновить проект и снова вставить все JARs библиотеки Джерси в /WEB_INF/lib. Обновите проект, снова запустите сервер, разверните и запустите.

Смежные вопросы