2009-05-18 2 views
2

Я разработал приложение Tomcat с использованием Tomcat 6 для тестирования. Я теперь развернул его в Tomcat 5.5 - когда я вызываю сервлет, я получаю сообщение об ошибке, которое не имеет для меня никакого смысла. Кто-нибудь знает, что вызывает эту ошибку.Ошибка с Tomcat 6 и Tomcat 5.5 Несовместимость

исключение

javax.servlet.ServletException: Ошибка выделения экземпляра сервлета org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:117) org.apache.catalina.connector.CoyoteAdapter. сервис (CoyoteAdapter.java:174) org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:874) org.apache.coyote.http11.Http11BaseProtocol $ Http11ConnectionHandler.processConnection (Http11BaseProtocol.java:665) орг .apache.tomcat.util.net.PoolTcpEndpoint.processSocket (PoolTcpEndpoint.java:528) org.apache.tomcat.util.net.LeaderFollowerWorkerThread .runIt (LeaderFollowerWorkerThread.java:81) org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run (ThreadPool.java:689) java.lang.Thread.run (Thread.java:595) Основная причина

java.lang.UnsupportedClassVersionError: Плохой номер версии в файле .class java.lang.ClassLoader.defineClass1 (Native Method) java.lang.ClassLoader.defineClass (ClassLoader.java:620) java.security.SecureClassLoader .defineClass (SecureClassLoader.java:124) org.apache.catalina.loader.WebappClassLoader.findClassInternal (WebappClassLoader.java:1853) org.apache.catalina.loader.WebappClassLoader.findClass (WebappClassLoader.java:875) org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1330) org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1209) java.security.AccessController.doPrivileged (собственный метод) org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:117) org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:174) org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:874) org.apache.coyote.http11.Http11BaseProtocol $ Http11ConnectionHandler.processConnection (Http11BaseProtocol.java:665) org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket (PoolTcpEndpoint.java:528) org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt (Le aderFollowerWorkerThread.java:81) org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run (ThreadPool.java:689) java.lang.Thread.run (Thread.java:595)

ответ

2

Это ничего общего с tomcat. Ошибка вызвана разностью версий файла .class.

Скорее всего, вы скомпилировали файл .class с Java6 и попытались запустить его на Java5.

Решение заключается в том, чтобы либо запустить tomcat5.5 на новой версии Java, либо просто перекомпилировать.

1

Я просто натолкнулся на это тоже. Проблема была на самом деле jsps, который был скомпилирован в Tomcat 6. Поэтому, когда я переключился на Tomcat 5, эти скомпилированные jsps стали причиной проблемы. Решение состоит в том, чтобы очистить рабочий каталог.

Однако это может быть проблемой, если вы указываете CATALINA_BASE, который был предоставлен Tomcat 6 и 5.