【问题标题】:JSP Subdirectory problem -- Unable to compile the jspJSP子目录问题——无法编译jsp
【发布时间】: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/…的副本。

标签: java jsp tomcat


【解决方案1】:

虽然我没有回答为什么放在子目录时它不起作用,如果它在根目录中工作正常,但是在行中,你为什么不试试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-12
    • 2017-12-13
    • 1970-01-01
    • 2013-11-10
    • 2017-12-13
    • 2015-11-15
    • 2021-10-04
    相关资源
    最近更新 更多