java - 报告丢失的文件,但实际上并没有

标签 java struts tomcat7

我正在使用其他人编写的 struts 开发 java web 应用程序,但我收到有关某些文件中缺少导入的错误,因此我查看了项目文件夹并在 jsp 文件中找到了看起来很奇怪的文件。所以,我将文件复制到相关包中,错误消失了。当我再次在 Tomcat 上运行该程序时,我得到了这个错误:

org.apache.jasper.JasperException: /index.jsp(3,55) File "/WEB-INF/struts-html.tld" not found
        org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
        org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
        org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:132)
        org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:166)
        org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
        org.apache.jasper.compiler.Parser.parseDirective(Parser.java:475)
        org.apache.jasper.compiler.Parser.parseElements(Parser.java:1425)
        org.apache.jasper.compiler.Parser.parse(Parser.java:138)
        org.apache.jasper.compiler.ParserController.doParse(ParserController.java:239)
        org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
        org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:197)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:372)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:352)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:339)
        org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:594)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:344)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

“/WEB-INF/struts-html.tld”仍然存在并且没有被更改或移动。我决定删除我移动的文件,因为程序在没有它的情况下仍然可以运行,但我仍然收到错误消息,我不确定如何解决这个问题。

编辑:

所以我决定刷新网页,但出现了一个不同的错误:

org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
        org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:168)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:356)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


root cause 

java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
        java.net.URLClassLoader$1.run(Unknown Source)
        java.security.AccessController.doPrivileged(Native Method)
        java.net.URLClassLoader.findClass(Unknown Source)
        org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132)
        org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
        org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:162)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:356)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

最佳答案

tld(标记库)文件及其位置在 web.xml 文件中指定。
如果您需要新的 tlds,使用这些 tldsjsp 文件将首先在 web.xml 中查找查找文件的信息和位置。

关于java - 报告丢失的文件,但实际上并没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10898400/

相关文章:

java - 如何在运行时更改 dozer XML 中的某些文本?

java - Android WebView 不可滚动

java - 弗林克 : no suitable method found for process

java - 启动 Tomcat 时出错 - 外部参数实体 "%[dtd];"“在标记后有字符

java - 没有为命名空间/和操作名称 CreateTicket 映射的操作

tomcat - 重新启动 Tomcat7 时出现奇怪的响应

java - 如何找到正确的用户名和密码标签?

java - 在 Struts 1 ActionForm 中处理异常

java - "Stream Closed"显然是由多次提交引起的错误

tomcat - 网络应用程序。设置 servlet TrackingFilter 后不显示任何内容