42

我正在使用 Eclipse 3.7 (STS) 和在 IDE 中运行的 Tomcat 7。我创建了一个新的动态 Web 项目并将一个 JSP 文件添加到 Web 内容根文件夹中。我可以毫无问题地运行 Tomcat 并从 Eclipse 中访问 JSP。

我已经从用户库向项目添加了一些 3rd 方 JAR(我没有使用 maven 或自动依赖管理)。在 JSP 中,我从项目的 JAR 文件中引用了一个类,我可以毫无问题地编译它,但是当我在 Tomcat 上部署时,JSP 会抛出 ClassNotFoundException。显然,Tomcat 无法从我的库设置中找到 JAR。我尝试为 Tomcat 服务器创建运行方式配置,并将类路径设置为与项目的类路径设置相匹配,但我仍然遇到相同的 classnotfound 问题。

我可以通过手动将所有项目 JAR 复制到 WEB-INF/lib 目录来解决这个问题,这样 webapp 就可以找到所有依赖项,但这很荒谬,我不认为这是解决方案,因为它是维护的噩梦。

我错过了什么吗?

4

2 回答 2

99

在项目的属性中,转到Deployment Assembly。在那里添加构建路径条目以及您手动添加为用户库的条目。它最终会出现在/WEB-INF/lib已部署的 WAR 中。

在此处输入图像描述

于 2011-08-10T04:21:54.673 回答
3

您需要将 jar 文件复制到 WEB-INF/lib 文件夹:这是它们应该在的位置。

Eclipse 应该为您提供生成包含所有依赖项的 WAR 文件的选项:我已经有一段时间没有使用 Web 工具了,但是一种或另一种方式,所有依赖项都必须在 WEB-INF/lib 中,否则类加载器将不会无法找到它们。

于 2011-08-10T04:10:05.193 回答