【发布时间】:2011-06-24 01:14:49
【问题描述】:
我创建了一个网站并托管在 windows 和 tomcat 6 上。
当我们从子目录访问 JSP 文件时,应用程序无法检测到 WEB-INF->classes 文件夹中的类文件。
我创建了一个 jsp 文件来访问一个类文件。当我从根文件夹访问 JSP 时,它工作正常。如果我将相同的 jsp 文件放在子目录中,则会抛出错误提示
HTTP 状态 500 -
输入异常报告
消息
描述服务器遇到一个 阻止它的内部错误() 完成此请求。
异常
org.apache.jasper.JasperException: /test.jsp(8,0) 的值 useBean 类属性 utils.LogWriter 无效。 org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40) org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407) org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148) org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1229) org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1178) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361) org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411) org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2417) org.apache.jasper.compiler.Node$Root.accept(Node.java:495) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361) org.apache.jasper.compiler.Generator.generate(Generator.java:3440) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:231) org.apache.jasper.compiler.Compiler.compile(Compiler.java:347) org.apache.jasper.compiler.Compiler.compile(Compiler.java:327) org.apache.jasper.compiler.Compiler.compile(Compiler.java:314) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
来自日志的额外信息
在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 在 org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861) 在 org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) 在 org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584) 在 java.lang.Thread.run(未知 来源)
示例:
Test.jsp 在 www.gamestest.com\community 中无法使用,但可以在 www.gamestest.com 中使用
test.jsp 代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page import="java.util.Vector,utils.LogWriter"%>
<jsp:useBean id="logger" class="utils.LogWriter" />
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<div id="topmenu">
<%@ include file="/../include/menu.jsp"%>
</div>
</body>
</html>
谢谢 亚历克斯
【问题讨论】:
-
答案在堆栈跟踪的根本原因部分。阅读服务器日志。如果您无法破译它们,请更新您的问题以包含整个堆栈跟踪。
-
是的,请使用相关代码添加整个堆栈跟踪
-
堆栈跟踪应该有更多内容。无论如何,这是stackoverflow.com/questions/3024507/…的副本。