从 Eclipse 将项目部署到 Tomcat

Posted

技术标签:

【中文标题】从 Eclipse 将项目部署到 Tomcat【英文标题】:deploy project to Tomcat from Eclipse 【发布时间】:2011-10-03 03:39:40 【问题描述】:

我正在尝试将一个多模块 Maven 项目从 Eclipse 部署到本地 Tomcat。项目结构如下:

root [packaging: pom]
|
|--- domain [packaging: jar]
|
|--- manager [packaging: jar]
|
|--- web [packaging: war]

我将所有项目导入 Eclipse,然后将“动态 Web 模块”方面添加到 Web 项目中

在同一对话框的运行时选项卡中,我将项目配置为使用(本地)Apache Tomcat v6.0 运行时。

然后我右键单击该项目并从菜单中选择“运行方式 -> 在服务器上运行”。在以下对话框中,我(再次?)选择“Tomcat v6.0 Server”

在以下对话框中,我将 Web 项目添加到已配置项目列表中

当我单击“完成”时,从控制台消息中显示服务器已启动,但是当我在浏览器中转到 http://localhost:8080/web/ 时,我得到一个 404。我还尝试了 http://localhost:8080/,它也返回一个 404 ,我做错了什么?

【问题讨论】:

您的应用程序可能无法启动。它会写任何应用程序日志吗? 【参考方案1】:

成功!!!

当我添加动态模块时,Eclipse 错误地创建了一个 WebContent 目录。我删除了这个目录并对.settings目录中名为org.eclipse.wst.common.component的文件进行了如下修改

<wb-resource deploy-path="/" source-path="/src/main/webapp"/>
<!--
<wb-resource deploy-path="/" source-path="/WebContent"/>
-->

【讨论】:

这太棒了!我也有同样的挣扎,然后得到了这个答案,这让我直截了当。一路上我有一些我忽略的线索,当我看到这一点时,它就全部到位了。谢谢! 这个人应该获得金牌。终于解决了我的问题! @javaBean007 我也接受相当于金牌的现金【参考方案2】:

我也尝试了http://localhost:8080/,它也返回了 404。

我会推断要么 Tomcat 没有在端口 8080 上侦听,因为行为是将 $CATALINA_HOME/webapps/ROOT/index.html 的内容显示为欢迎页面。您可能希望首先验证 Tomcat 是否配置为侦听端口 8080。 $CATALINA_HOME/conf/server.xml 文件的条目应类似于下面列出的条目:

<Server port="8005" shutdown="SHUTDOWN">
    ...
    <Service name="Catalina">
        ...
        <Connector port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" />

如果您做对了,但您看到的是 404 响应,那么显然配置有问题。 $CATALINA_HOME/webapps/ROOT 不存在,或者您可以通过查看 $CATALINA_HOME/logs 目录中的日志确定的其他内容。

当我单击“完成”时,从控制台消息中显示服务器已启动,但当我在浏览器中转到 http://localhost:8080/web/ 时,我得到一个 404

假设 Tomcat 已成功配置,如果您没有在 web.xml 中列出的欢迎文件,则可能会出现这种描述的行为。 welcome-file-list 的结构与下面列出的类似:

<web-app>
...
    <welcome-file-list>
        <welcome-file>somePage.html</welcome-file>
    </welcome-file-list>
...
</web-app>

很明显,您需要在欢迎页面中包含有效的 HTML。您还可以将 JSP 页面用作欢迎页面。

Maven 与 Eclipse 的集成

我将把它放在一个单独的部分中,因为我不确定您的 Eclipse 项目是否一开始就设置正确。通常可以使用m2eclipsemaven-eclipse-plugin 在Eclipse 中配置WTP 项目。

如果您已将 Maven 特性(使用 m2eclipse 插件)添加到项目中,那么您必须知道 m2eclipse 倾向于还原任何可能与其生成的更改发生冲突的更改。例如,m2eclipse 会将 Java facet 的版本设置为在 pom.xml 中为 maven-compiler-plugin 指定的 source 版本。

此外,在服务器上部署应用程序之前,运行package 阶段可能很重要。在某些情况下,我被这种行为绊倒了。

【讨论】:

以上是关于从 Eclipse 将项目部署到 Tomcat的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Java Web 应用程序项目从 Eclipse 部署到实时 Tomcat 服务器?

eclipse发布项目到tomcat部署目录

Eclipse下配置javaweb项目快速部署到tomcat

Eclipse中的Web项目自己主动部署到Tomcat

Eclipse中怎么把项目部署到Tomcat中去?

将Eclipse中的Web项目部署到Tomcat与修改Tomcat服务器Server Locations