2009-05-18 4 views
2

테스트 용으로 Tomcat 6을 사용하여 Tomcat 응용 프로그램을 개발했습니다. 이제 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 (기본 방법) java.lang.ClassLoader.defineClass (ClassLoader.java:620) java.security.SecureClassLoader에서 잘못된 버전 번호 (WebClassLoader.java : 875) (웹 메서드 클래스) 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

이는있다 바람둥이와 아무 상관 없습니다. 이 오류는 .class 파일 버전 차이로 인해 발생합니다.

대부분 Java6로 .class 파일을 컴파일하고 Java5에서 실행하려고했습니다.

해결 방법은 최신 버전의 Java에서 tomcat5.5를 실행하거나 다시 컴파일하는 것입니다.

1

나는이 문제도 다뤘다. 문제는 실제로 Tomcat 6에서 컴파일 된 jsp였습니다. 그래서 Tomcat 5로 전환하면 컴파일 된 jsp가 문제의 원인이었습니다. 해결 방법은 작업 디렉토리를 지우는 것입니다.

그러나 이것은 톰캣 6과 5가 공유하는 CATALINA_BASE를 지정하는 경우에만 문제가됩니다.