在 Eclipse 构建路径中使用用户库时出现 ClassNotFoundException

问题描述 投票:0回答:2

我正在使用 Eclipse 3.7 (STS),并在 IDE 中运行 Tomcat 7。我创建了一个新的 Dynamic Web 项目,并将一个 JSP 文件添加到 Web 内容根文件夹中。我可以运行 Tomcat 并从 Eclipse 中访问 JSP,没有任何问题。

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

我可以通过手动将所有项目 JAR 复制到 WEB-INF/lib 目录来解决这个问题,以便 web 应用程序可以找到所有依赖项,但这是荒谬的,我不希望这成为解决方案,因为这是维护噩梦。

我错过了什么吗?

eclipse tomcat classnotfoundexception buildpath
2个回答
99
投票

在项目属性中,转到部署程序集。在那里添加构建路径条目以及您手动添加为用户库的条目。它将最终出现在部署的 WAR 的

/WEB-INF/lib
中。

enter image description here

另请参阅:


4
投票

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

Eclipse 应该为您提供生成包含所有依赖项的 WAR 文件的选项:我已经有一段时间没有使用 Web Tools,但无论如何,所有依赖项都必须位于 WEB-INF/lib 中,否则类加载器将获胜找不到他们。

© www.soinside.com 2019 - 2024. All rights reserved.