Класс Tomcat не найден и есть класс по пути WEB-INFlib

#java #tomcat #jakarta-ee #webserver

#java — язык #кот #джакарта-ee #веб-сервер #java #tomcat

Вопрос:

Я скопировал приложение с сервера, затем развернул на Tomcat6 (то же, что и сервер), но я всегда получаю ошибку! Я попытался переустановить Tomcat, но ошибка все та же.

ошибка 1:

             2011-4-12 21:36:16 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
2011-4-12 21:36:16 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
2011-4-12 21:36:21 org.apache.catalina.core.ApplicationContext log
信息: Marking servlet AdminServlet as unavailable
2011-4-12 21:36:21 org.apache.catalina.core.ApplicationContext log

严重: Error loading WebappClassLoader
  context: /portal
  delegate: false
  repositories:
    /WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@1eed786
 org.apache.axis.transport.http.AdminServlet
java.lang.ClassNotFoundException: org.apache.axis.transport.http.AdminServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1493)
    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:4387)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4700)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
    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:142)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1061)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:701)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:585)
    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)
2011-4-12 21:36:21 org.apache.catalina.core.StandardContext loadOnStartup

严重: Servlet /portal threw load() exception
java.lang.ClassNotFoundException: org.apache.axis.transport.http.AdminServlet
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1493)
    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:4387)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4700)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
    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:142)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1061)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:701)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:585)
    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)
2011-4-12 21:36:54 org.apache.catalina.core.StandardWrapperValve invoke

严重: Servlet.service() for servlet jsp threw exception
java.lang.ClassNotFoundException: org.jdom.input.SAXBuilder
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1493)
    at pde.ams.AmsGlobals.loadProperties(AmsGlobals.java:82)
    at pde.ams.AmsGlobals.getAmsPropertys(AmsGlobals.java:47)
    at pde.ams.AmsEngine.initialize(AmsEngine.java:77)
    at pde.ams.AmsEngine.<init>(AmsEngine.java:61)
    at pde.ams.AmsEngine.getInstance(AmsEngine.java:45)
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:90)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at pde.ams.filters.AmsFilter.doFilter(AmsFilter.java:77)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:619)
2011-4-12 21:37:07 org.apache.catalina.core.StandardContext listenerStop
  

ошибка 2:

     严重: Exception sending context destroyed event to listener instance of class pde.ams.ContextListener
java.lang.NullPointerException
    at pde.ams.ContextListener.contextDestroyed(ContextListener.java:15)
    at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4211)
    at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4846)
    at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:932)
    at org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:1319)
    at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:1290)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:323)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1094)
    at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1106)
    at org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:468)
    at org.apache.catalina.core.StandardService.stop(StandardService.java:604)
    at org.apache.catalina.core.StandardServer.stop(StandardServer.java:735)
    at org.apache.catalina.startup.Catalina.stop(Catalina.java:652)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:619)
    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)
2011-4-12 21:37:07 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextDestroyed()
2011-4-12 21:37:07 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextDestroyed()

   desc:there are  the classes that could not found by tomcat still in the path /web_inf/lib
  

Вопрос1: Что с ним не так?

Вопрос2: Есть ли какая-либо связь между ошибкой1 и ошибкой2?

хорошо, это трассировка стека compete

Комментарии:

1. Когда вы копировали приложение, вы удаляли исходные тексты, созданные какими-либо .jsp страницами? Скорее всего, они ссылаются на классы, которые не существуют, если на сервере не запущен tomcat.

Ответ №1:

Вопрос1: Что с ним не так?

Первая ошибка выглядит как ошибка в веб-приложении или его конфигурации. Tomcat сообщает, что что-то (например, один из сервлетов) не выполняется корректно при завершении работы веб-приложения. Если это не исправить, на вашем веб-сервере может закончиться память после нескольких перезапусков веб-приложения.

Вторая ошибка заключается в жалобе на то, что какой-то класс не может быть найден. Вероятно, это какая-то ошибка конфигурации веб-сервера или веб-приложения.

В обоих случаях было бы полезно, если бы вы показали нам полные трассировки стека.

Вопрос2: Есть ли какая-либо связь между ошибками 1 и ошибки2?

Вероятно, нет.


Немного покопавшись, я понял, что вы, скорее всего, найдете org.apache.axis.transport.http.AdminServlet в файле JAR с именем axis-x.y.jar или что-то в этом роде (см. http://findjar.com/class/org/apache/axis/transport/http/AdminServlet.html для получения полного списка)

Для org.jdom.input.SAXBuilder поиска файла, подобного jdom-x.y.jar (см. http://findjar.com/class/org/jdom/input/SAXBuilder.html для получения полного списка)

Вторая ошибка отличается от ошибки, о которой вы первоначально сообщили, но это все еще ошибка в веб-приложении. Это может быть следствием вашей первой ошибки; т. Е. предполагается, что сервлет запущен правильно.

Вам нужно взглянуть на ваше веб-приложение, установленное на Tomcat, и посмотреть, находятся ли банки Axis и JDOM в WEB-INF / lib. Если нет, вернитесь на сервер, с которого вы скопировали веб-приложение, и посмотрите веб-приложение там… и в области общей библиотеки сервера. (Вы не говорите, с какого сервера вы копируете …)

Комментарии:

1. спасибо, я снова редактирую вопрос, показываю полные трассировки стека, я все еще не могу решить проблему.

2. большое вам спасибо! я нашел причину только потому, что jar в библиотеке сломан! возможно, что-то не так, когда я копирую jar в myeclipse webapp. когда я переключаюсь на пользовательский netbeans, он сообщает, что файл jar поврежден. большое вам спасибо.