실제로 Tomcat에서 하나의 Java 응용 프로그램을 로컬로 설정했으며 그 시간은 잘 돌아 갔지만 한 달 후에 다시 코드를 변경하지 않고 아래에 오류가 나타납니다.Java 응용 프로그램이 작동을 멈추고 예외가 발생합니다.
javax.servlet.ServletException: Servlet.init() for servlet action threw exception
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
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(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
java.lang.Thread.run(Thread.java:595)
근본 원인
java.lang.NoClassDefFoundError
com.lexmark.efoundations.lxpd.gui.struts.ActionServlet.init(Unknown Source)
javax.servlet.GenericServlet.init(GenericServlet.java:212)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
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(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
java.lang.Thread.run(Thread.java:595)
나는 또한 언급 클래스 "com.lexmark.efoundations.lxpd.gui.struts.ActionServlet는"적절한 위치에 있는지 확인했다.
당신은 그것이 "적절한 장소에"있는지 확인 했습니까 - 정확히 어디에 있습니까? –
JAR 파일이 실제로 있다는 것을 알았을 때이 오류가 발생하는 가장 일반적인 원인은 기대 한 JAR의 새로운 버전이나 이전 버전이 클래스 경로의 앞부분에 없는지 확인해야한다는 것입니다. – pickypg
ActionServlet 클래스가있는 "com.lexmark.efoundations.lxpd.gui.struts"를 확인했습니다. –