java - 如何在 Eclipse 中针对 Tomcat 正确部署和构建项目?

标签 java eclipse tomcat

我是一个相对较新的 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 放在一个公共(public)位置,所有已部署的应用程序都可以访问它们,我认为该文件夹是:

C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib

(以我为例)。这是完全有道理的,这是合乎逻辑的,因为您不希望 Tomcat 上的大量应用程序都引用相同的 jar。所以我从我的项目 lib 文件夹中删除了所有的 jar,并将它们放在 common\lib 目录中。

现在我的应用程序将无法正常工作 - 它无法在 src 中找到我的源代码,这是我针对这些 jar 编写的自定义定制代码。只有当我将我的源代码打包并放入上述目录时,它才会起作用。奇怪。

我显然对类路径和构建路径以及所有这些东西感到非常困惑,并且一定是把这类东西弄错了,因为我不是 Java 专家,我很乐意承认我已经把它一起破解了 - 所以任何人都可以用外行的术语向我解释我应该如何构建我的项目以使其与保存在 Tomcat 中的公共(public)文件夹中的 jars 一起工作。或者网络上是否有任何好的资源可以帮助向我解释我应该做什么。

希望这一切都有意义......

这是我当前项目的图片:

alt text

最佳答案

听起来您没有使用 WTP 网络项目。

如果您已经安装了 Eclipse 的“面向 Java EE 开发人员的 Eclipse IDE”,WTP 已经捆绑在其中。否则这里是它的更新站点 -> http://download.eclipse.org/webtools/updates

安装 WTP 后,您应该创建“动态 Web 项目”。 一般来说,我会建议只将您的表示层放在这里(JSP、CSS、HTML)并将所有纯 Java 项目放入标准的“Java”项目中,您稍后将其添加为“动态 Web 项目”的依赖项。

WTP 可以在许多容器下运行您的 Web 应用程序,幸运的是支持 Tomcat。 您需要通过 Window->Preferences->Server->Runtime Environments 配置它。

配置运行时环境后,您可以创建服务器运行时:

  1. 在“服务器” View 中右键单击。
  2. 选择新建->服务器
  3. 选择服务器类型:“Tomcat v.5.5 服务器”
  4. (可选)将服务器名称更改为您认为有意义的名称
  5. 选择服务器运行时环境:这是您之前配置的运行时环境
  6. 点击“下一步”按钮
  7. 将您的“动态 Web 项目”项目添加到“已配置项目:”面板
  8. 点击“完成”按钮

服务器配置完成后,您可以运行它,也可以将其置于 Debug模式。依赖项目引用的所有源代码都可用于调试。

注意: 根据个人经验,我不推荐使用 common/lib。将 Web 应用程序依赖的所有 jar 放入其 WAR 文件中。如果您担心依赖项跟踪,请开始研究 Maven 和 m2eclipse。

关于java - 如何在 Eclipse 中针对 Tomcat 正确部署和构建项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4464910/

相关文章:

java - eclipse rcp e4 : how to highlight the selected tab in part stack?

css - Eclipse PDT - 更改 CSS Content Assist 的字体颜色

tomcat - 将嵌入式 tomcat 5 迁移到 tomcat 7

java - Spring MongoDB 进程/线程泄漏

java - 删除临时文件onexit java vm

java - 从 pom.xml 获取项目版本

java - Clojure 中的链接 vector 元素

javascript - 为什么 JavaScript 查看器没有显示在 Eclipse 编辑器选择中?

java - 使用 httpclient 有没有办法通过 HEAD 请求获取页面的字符集?

java - 如何使用外部参数更改数组中元素的值?