제 질문을 보아 주셔서 감사합니다.Tomcat 6/JDK 6에서 Mysql/j Connector가 언로드됩니다.
한 번에 하나의 서버에만 배포하기위한 Java WAR 파일을 개발했습니다. 지금까지 필자는 성공한 데비안 1 대, 우분투 1 대, 다른 3 대를 테스트했습니다.
최종 배포 서버에서 어떤 이유로 앱이 잘 배포되며 시작할 때마다 약 3 분 동안 잘 실행됩니다. 데이터베이스 연결이 제대로 작동합니다. 그러나 3 분 후에 앱이 DB에 액세스하려고 할 때마다 NoClassDefFoundError가 지속적으로 표시되기 시작합니다.
I 해요 WAR 파일에 패키지 모두 다음과 같은 라이브러리 :MySQL의/J 연결 관, 최신 버전 ActiveObjects, 0.8.2 Jasorb 1.3 자이 썬 2.5.1 (일부 스크립팅) 톰캣 6.0.20 mod_python을 아파치
오류 :
Exception in thread "Timer-4" java.lang.NoClassDefFoundError: com/mysql/jdbc/SQLError at com.mysql.jdbc.Util.handleNewInstance(Util.java:430) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:352) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:284) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:185) at net.java.ao.DatabaseProvider.getConnectionImpl(DatabaseProvider.java:771) at net.java.ao.DatabaseProvider.getConnection(DatabaseProvider.java:734) at net.java.ao.EntityManager.find(EntityManager.java:666) at net.java.ao.EntityManager.find(EntityManager.java:607) at net.java.ao.EntityManager.find(EntityManager.java:579) at com.sq.sa.SAPushAlertsTask.run(SAPushAlertsTask.java:32) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462) Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.SQLError at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:138 7) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:123 3) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) ... 13 more
답장을 보내 주셔서 감사합니다. 내 WAR 파일에서 mysql/j 커넥터를 제거하고 tomcat/libs로 옮겨 보았습니다. 이것은 유용하게 쓸만한 더 큰 스택 추적을 생성합니다 : http://pastie.org/653416 정말 고마워요! – samuraisam
"이 웹 응용 프로그램 인스턴스가 이미 중지되었습니다."메시지는 매우 의심 스럽습니다. 웹 응용 프로그램을 정말로 중단 했습니까 (Tomcat의 관리자 응용 프로그램에서 확인할 수 있습니까)? 그렇다면 왜? 클래스 로더 문제가 분명히 있습니다. 사실 jdbc를 war에서 tomcat/libs로 옮기면 동작이 확실히 바뀌었다. CLASSPATH에 포함 된 내용 (tomcat을 다음과 같이 시작하는 사용자의 경우)은 무엇입니까? – ChssPly76
점점 더 이상해집니다. * 앱은 배포되지 않았고, MySQL/j 커넥터는 tomcat/lib 디렉토리에 없습니다. 그러나 위 게시물의 스택 추적은 계속 tomcat/logs/catalina에 덤프됩니다. 아웃. 내 바람둥이 설치가 골뱅이인가? 도와 주셔서 다시 한 번 감사드립니다! – samuraisam