java - Tomcat java.lang.ClassNotFoundException 异常

标签 java jsp tomcat war

我有 Tomcat 7.0.42 和 Java JDK 1.7.0_40。通过浏览器,我在 Tomcat 中部署了一个仅包含两个 JSP 页面的 WAR。 Tomcat 以“tomcat”用户身份运行,Tomcat 文件夹中的所有文件都以“tomcat”为所有者。 Java JDK 反而属于 用户“uucp”和组“143”。在 Tomcat 的启动脚本中,我添加了 export JAVA_HOME=/var/jdk1.7.0_40 (但如果我 使用用户“tomcat”发出命令 echo $JAVA_HOME 我什么也得不到)。

有时,当我尝试访问已部署应用程序的 JSP 页面时,我会收到错误消息:

SEVERE: Servlet.service() for servlet [jsp] in context with path [/examples] threw exception [java.lang.ClassNotFoundException: org.apache.jsp.test1_jsp] with root cause
java.lang.ClassNotFoundException: org.apache.jsp.test1_jsp
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132)
        at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
        at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:143)
        at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:724)

如果我重新启动 Tomcat,我将能够正确访问那些 JSP 页面,并在一段时间后出现错误 再次出现。

但是我需要找到一种无需重启 Tomcat 即可正确访问这些 JSP 页面的方法。

最佳答案

  • 添加JAVA_HOME不会为用户tomcat设置环境变量,如果要为用户设置,则必须在*nix系统的.bashrc中或在环境变量中定义。 window 。
  • 此错误表示 tomcat 无法找到为您的 jsp 页面生成的类文件, 在独立的 tomcat 安装上,生成的文件位于 /work/Catalina/localhost 在 Eclipse 上它将位于 .metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps

关于java - Tomcat java.lang.ClassNotFoundException 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20051655/

相关文章:

java - 如何在运行 Tomcat 时获取包版本?

java - Maven:JAR 将为空 - 没有内容被标记为包含

java - WAS Liberty 17.0.0.3 上的非持久性计时器创建

java - 将 PImage 转换为 Mat - Processing IDE P3D (OpenGL) 渲染器中的 Java OpenCV

java - 获取 Struts 2 中的列表映射

apache - 在 apache 代理后面使用 Liferay 时完成 struts 操作后忽略重定向

java - 如何在 Wicket 口行为中获得模型的值(value)

jsp - 如何从另一个 servlet 检索 session 属性?

java - 如何创建线程安全的 JSP 页面

java - 检索网址