2012-06-05 29 views
3

我正在使用其他人编写的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) 
+0

总是很好做(新的File(filePathString))。exists()来查看Java是否真的可以找到它。 – jn1kk

回答

1

在您的web.xml中,您需要在欢迎页面定义之后立即放置taglib定义。它为我工作。

+0

你应该粘贴它,这将使用户易于理解 –

3

tld(标签库)文件和它们的位置在web.xml文件中指定。
如果你需要新的tldsjsp文件,这在使用这些tlds先来看看在web.xml找到该文件的信息和位置。

+0

没有'tlds'移动,'web.xml'指向正确的位置。 – Saliceran

+0

你是否手动移动它在ide之外的任何文件? – GingerHead

+0

不。我发现在所有JSP文件中似乎缺少WebContent文件夹的java文件,所以我在Eclipse中右键单击它,复制它,然后将其粘贴到它应该包含的包中。 – Saliceran