从Eclipse部署项目到Tomcat

Dón*_*nal 5 java eclipse tomcat maven-2

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

root [packaging: pom]
|
|--- domain [packaging: jar]
|
|--- manager [packaging: jar]
|
|--- web [packaging: war]
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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

然后我右键单击该项目并从菜单中选择"Run As - > Run on Server".在以下对话框中我(再次?)选择"Tomcat v6.0 Server"

在此输入图像描述

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

在此输入图像描述

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

Dón*_*nal 9

成功!!!

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

<wb-resource deploy-path="/" source-path="/src/main/webapp"/>
<!--
<wb-resource deploy-path="/" source-path="/WebContent"/>
-->
Run Code Online (Sandbox Code Playgroud)


Vin*_*lds 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" />
Run Code Online (Sandbox Code Playgroud)

如果您的操作是正确的,但您看到 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>
Run Code Online (Sandbox Code Playgroud)

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

Maven 与 Eclipse 集成

我将其放在一个单独的部分中,因为我不确定您的 Eclipse 项目是否首先正确设置。通常,人们会使用 或m2eclipse之一maven-eclipse-plugin在 Eclipse 中配置 WTP 项目。

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

package此外,在服务器上部署应用程序之前运行该阶段可能很重要。我曾多次被这种行为绊倒。