【发布时间】:2011-05-26 18:44:09
【问题描述】:
我是一个相对较新的 Java 开发人员,被深埋,我通常的技能在于 Microsoft 产品和 C#。
但是我已经设法使用 Restlet 编写了一个不错的 Web 服务,并结合了 Toplink 并做了一些数据库 CRUD 等工作。
我在 Eclipse 中针对 Tomcat 5.5 开发了这个。我遵循教程和示例,并设法将一些有用的东西放在一起。
我的所有 jar 文件都放在项目的 WebContent/WEB-INF/lib 目录中 - 我很快意识到,当我将其导出为 WAR 文件并部署在 Tomcat 中时,它会使用这些 jar 文件并将它们存储在本地到应用程序。
很好,但是当您尝试取消部署应用程序时,它只是部分地执行它,因为 Tomcat “保留”了它正在使用的一些 jar,即 Oracle JDBC 和 Toplink 的。这是有道理的,因为 Web 服务正在使用这些 jar,因为正在进行实时 Oracle 连接。
然后我想我应该将所有这些 jar 放在一个公共位置,所有已部署的应用程序都可以访问它们,我认为该文件夹是:
C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib
(在我的情况下)。这完全有道理,这是合乎逻辑的,因为您不希望 Tomcat 上的大量应用程序都引用相同的 jar。所以我从我的项目 lib 文件夹中删除了所有 jar,并将它们放在 common\lib 目录中。
现在我的应用程序将无法正常运行 - 它无法在 src 中找到我的源代码,这是我针对这些 jar 编写的自定义定制代码。仅当我将源代码 jar 并放入上述目录中时,它才会起作用。奇怪。
我显然对类路径和构建路径以及所有这些东西感到非常困惑,并且由于我不是 Java 专家,所以肯定是把这些东西都弄错了,因为我很容易承认我已经把这些东西一起破解了 - 所以任何人都可以用外行的方式向我解释我应该如何构建我的项目以使其与 Tomcat 中一个公共文件夹中保存的 jar 一起工作。或者网络上有什么好的资源可以帮助我解释我应该做什么。
希望这一切都有意义...
这是我当前项目的图片:
【问题讨论】: