从 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 项目是否一开始就设置正确。通常可以使用m2eclipse
或maven-eclipse-plugin
在Eclipse 中配置WTP 项目。
如果您已将 Maven 特性(使用 m2eclipse 插件)添加到项目中,那么您必须知道 m2eclipse 倾向于还原任何可能与其生成的更改发生冲突的更改。例如,m2eclipse 会将 Java facet 的版本设置为在 pom.xml 中为 maven-compiler-plugin
指定的 source
版本。
此外,在服务器上部署应用程序之前,运行package
阶段可能很重要。在某些情况下,我被这种行为绊倒了。
【讨论】:
以上是关于从 Eclipse 将项目部署到 Tomcat的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Java Web 应用程序项目从 Eclipse 部署到实时 Tomcat 服务器?