Tomcat7 WEB-INF / lib目录不起作用

时间:2013-07-25 09:02:34

标签: java jsp tomcat jstl jsp-tags

我是jsp页面的新手,就在昨天我开了类似的讨论。 这可能是一个重复或非常相似的一个,我很抱歉这是否是这种情况,但是我正在开发jsp页面的几天,我还没有理解环境,文件夹等是如何“联系在一起。

我在 Apache Tomcat 7

上收到以下错误
HTTP Status 500 - The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application

因为我包含了这个 taglib

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

然后,我在“WEB-INF”中创建了一个文件夹“lib”,然后我把文件放在 jstl-1-2.jar 中。 用户建议进入另一个可从此处获得的讨论 The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application 删除 standard.jar 但我从未有类似的文件。

在网上阅读和浏览,我读到 Tomcat 7 应该足以将 jstl-1-2.jar 放入WEB-INF / lib文件夹如下所示,无论是否有该文件,都没有发生。错误不会改变。

/var/lib/tomcat7/webapps/jsp_test/web/WEB-INF/lib/jstl-1-2.jar

这是三个文件夹:

- webapps - ROOT - index.html
                 - META-INF - context.xml

          - jsp_test - nbproject
                     - src - conf - MANIFEST.MF
                           - java - mypack - Display.java

                     - web - ROOT    - index.jsp
                           - WEB-INF - lib       -jstl-1.2.jar
                                     - web.xml
                                     - beans.xml

我还注意到tomcat 7文件夹中还有另一个 web.xml 文件:

/etc/tomcat7/web.xml

我是否必须更改 web.xml 文件中的内容?

此外,查看tomcat7-example文件夹中有一个 web.xml 文件,其中许多库都以.tld扩展名编写:

/usr/share/tomcat7-examples/examples/WEB-INF/web.xml

我迷失了这个愚蠢的事情,请帮帮我! :)

4 个答案:

答案 0 :(得分:1)

您需要了解如何在Tomcat上正确创建和部署Web应用程序。

删除/web根目录下的/jsp_test文件夹。您应该只有/WEB-INF及其子项位于根目录下。

答案 1 :(得分:1)

请浏览网址的内容:https://stackoverflow.com/tags/jstl/info。它可以帮助您解决问题。

答案 2 :(得分:1)

像duffymo一样说je webapp结构应该是这样的: 请注意,我还删除了'jsp_test'下的'ROOT'目录,不知道为什么你添加了这个目录。您现在可以直接从域的根目录访问index.jsp。

- webapps - ROOT - index.html
                 - META-INF - context.xml

          - jsp_test - index.jsp
                     - WEB-INF - lib       -jstl-1.2.jar
                               - web.xml
                               - beans.xml

我很好奇你用什么url来访问index.jsp以获得500错误?

类似“http://yourdomain.net/jsp_test/web/ROOT/index.jsp”的内容?

现在访问index.jsp的网址应如下所示:'http://yourdomain.net/jsp_test/index.jsp'

我不知道你是否在tomcat中为你的应用程序配置了一个上下文根,但是如果你这样做并在'jsp_test'上映射它,则url变为:'http://yourdomain.net/index.jsp'

如果您只是使用tomcat webserver处理开发环境,那么将应用程序放在tomcat的ROOT webapp中也非常方便。只需摆脱当前的ROOT webapp并将其替换为您的,所以您的结构将如下所示:

- webapps - ROOT - index.jsp
                 - WEB-INF - lib       -jstl-1.2.jar
                           - web.xml
                           - beans.xml

答案 3 :(得分:0)

我认为我刚刚解决了这个问题。

希望它对某人有用,低于我们的解决方案。

我删除了旧项目,并在 webapps 的同一级别的名为“tsp_test”的新目录中添加了一个新项目。

server.xml 中设置新主机后,我为项目构建了一个新的文件夹结构:

- tomcat7 - jsp_test - conf
                     - java - mypack - Display.java
                     - test
                     - ROOT - META-INF - context.xml
                            - WEB-INF  - web.xml
                                       - lib         - jstl-1.2.jar
                            - index.jsp

现在我收到了另一个与 taglib 问题无关的错误:

HTTP Status 500 - Unable to compile class for JSP

我认为这可能是因为某些类错误。

谢谢你的帮助!