从Eclipse部署项目到Tomcat

时间:2011-07-11 21:12:09

标签: java eclipse tomcat maven-2

我正在尝试将Eclipse中的多模块Maven项目部署到本地Tomcat。该项目具有以下结构:

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

我将所有项目导入Eclipse,然后将“Dynamic Web Module”方面添加到Web项目

enter image description here

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

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

enter image description here

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

enter image description here

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

2 个答案:

答案 0 :(得分:9)

成功!!!

当我添加动态模块时Eclipse错误地创建了一个WebContent目录。我删除了此目录,并对名为.settings的{​​{1}}目录中的文件进行了以下更改

org.eclipse.wst.common.component

答案 1 :(得分:0)

  

我也尝试了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中为source指定的maven-compiler-plugin版本。

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