Java - 部署Web应用程序时出现问题

时间:2010-03-16 06:27:16

标签: java web-applications

我已经构建了一个Java Web应用程序并将其打包在.war文件中并在我的本地tomcat服务器上进行了测试,并且运行正常。

但是当我在客户端的服务器上部署它时,它显示错误。根据远程服务器(我的客户端的服务器),它没有找到我放在tld目录中的jar文件中打包的WEB-INF/lib文件。但当我检查WEB-INF/lib目录中的jar文件时,我发现它就在那里。

META-INF/MANIFEST.MF的内容如下:

Manifest-Version: 1.0
Class-Path:

我认为没有必要明确提及WEB-INF/lib目录的类路径,因为它默认位于任何Web应用程序的类路径中。

然后,当我在远程服务器上部署它时,为什么服务器在lib目录中找不到jar文件,以及当我在本地服务器上部署相同的应用程序时,为什么它正在工作。

我在Struts 1 - struts-taglib.jar is not being found by my web application发布了一个问题,但发现问题很罕见,因为没人能回答。

所以我的问题如下:

Q1。如果我将类路径条目保留为空,如上所示在MANIFEST.MF文件中,或者我应该从文件中完全删除类路径条目,或者我应该明确输入WEB-INF/lib,那么Class-Path: /WEB-INF/lib是否仍然保留在类路径中classpath entry?

Q2。我在Web应用程序中有JSP个页面,Servlet和一些帮助程序类。 Jsp页面位于根目录。 Servlet和帮助程序类位于WEB-INF/classes文件夹中。如果我的帮助程序类位于WEB-INF/classes文件夹中,是否有任何问题?

注意:请注意,此问题与我之前的问题不同。这是我上一个问题的后续问题。

服务器(本地和远程)都是tomcat服务器。

2 个答案:

答案 0 :(得分:1)

不要在清单中创建一个空的Class-Path条目,只需将其删除即可!通常,您不需要在webapp中输入任何Class-Path条目。此条目对于可运行的罐子更常见。

帮助程序类没有问题。 WEB-INF / classes始终是classpath的第一个条目,后跟WEB-INF / lib的jar。所以容器编译的JSP应该没有使用那里包含的类的问题。

您是否已将{tag}在web.xml中添加了适当的taglib-location

答案 1 :(得分:-1)

如果taglib-location指向互联网位置(即使用http)并且生产框可能无法访问互联网(由于许多防火墙限制),这尤其可能在生产中发生