Tomcat 本地部署单模块项目和多模块项目完整教程

今天来分享一下如何在本机不适用IDEA等辅助工具的前提下,部署tomcat的web项目。其中分为单体项目和聚合项目。

一、部署项目前的准备工作

1.1 打开tomcat的安装目录下的conf文件夹,查看server.xml文件

image

查看server.xml文件

我们在本地部署之前首先要看tomcat能否正常运行,查看server.xml问价可以发现service中tomcat的默认端口号为8080

image

查看webapps文件夹下的ROOT文件夹下的内容(这就是初始tomcat的网页内容,如果和下图不一致,重新安装一份tomcat)

image

启动tomcat(双击start.bat启动tomcat)

image

打开浏览器验证tomcat能否正常运行

打开浏览器,在网址栏输入 localhost:8080,我们能看到如下界面,说明tomcat没问题。

image

二、含单个tomcat的web项目(单体项目)

这里我随便找了个mavenweb项目进行演示,下面是项目的结构,打包方式是war包,依赖都正常导入。

image

想要在本地部署tomcat,我们就需要目标项目的war包,所以我们需要使用maven先对项目进行打包

首先执行clean命令清理上次打包残留文件,再使用install执行完整的生命周期进行打包,也就是重新编译、测试、打包,并将 war 包存入本机 Maven 本地仓库

image

image

image

两个命令都执行成功之后,就能在IDEA界面看到产生的target文件夹

image

将打包后的war文件放到自己tomcat中webapps文件夹下,如下所示:

image

修改tomcat的server.xml文件的相关配置

之后,我们需要修改tomcat的一些相关配置,我们进入tomcat的conf下,修改server.xml,添加如下代码
这里我们需要注意的是:不要删除原有第一个默认<Service name="Catalina">,要么保留,要么注释,只新增你这段Catalina1。

<!-- 每个service的名称要区别开 -->
<Service name="Catalina1">
    <!-- 每个项目的端口号也要进行区分,保证不被占用 -->
    <Connector port="8088" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URLEncoding="UTF-8"/>
    <!-- 这里的AJP端口同样也要进行区分 -->
	<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" secretRequired=""/>
    <Engine name="Catalina1" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
 
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
            <!-- 这里是想要部署的对应项目的名称 -->
		    <Context docBase="ham-file-1.0-SNAPSHOT" path="/" reloadable="true"/>
      </Host>
    </Engine>
  </Service>
  <Service name="Catalina2">
    <Connector port="8075" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URLEncoding="UTF-8"/>
	<Connector port="8011" protocol="AJP/1.3" redirectPort="8443" secretRequired=""/>
    <Engine name="Catalina2" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
 
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
		    <Context docBase="ham-portal-1.0-SNAPSHOT" path="/" reloadable="true"/>
      </Host>
    </Engine>
  </Service>

image

image

启动tomcat

image

打开浏览器,在网址栏输入localhost:8088(这里的端口号就是刚才在server.xml文件的service中自己写的端口号,项目访问成功)

三、含有多个tomcat的maven聚合项目

其实流程和之前一样,唯一的区别就是,我们只需要对父工程进行clean和install操作(所有的子模块都会被打包),然后将各个子模块的war包(和jar包)都复制放到tomact安装目录下的webapps下即可

785e5a25e64c63f236d42e115a48d62f

在conf文件夹下的server.xml文件中添加service对(需要部署多少个tomcat,就加几个,这里需要注意的是service中的端口号要和IDEA中配置的端口号保持一致)我这里需要添加三个

<!-- 每个service的名称要区别开 -->
<Service name="Catalina1">
    <!-- 每个项目的端口号也要进行区分,保证不被占用 -->
    <Connector port="8088" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URLEncoding="UTF-8"/>
    <!-- 这里的AJP端口同样也要进行区分 -->
	<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" secretRequired=""/>
    <Engine name="Catalina1" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
 
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
            <!-- 这里是想要部署的对应项目的名称 -->
		    <Context docBase="ham-file-1.0-SNAPSHOT" path="/" reloadable="true"/>
      </Host>
    </Engine>
  </Service>
  <Service name="Catalina2">
    <Connector port="8075" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URLEncoding="UTF-8"/>
	<Connector port="8011" protocol="AJP/1.3" redirectPort="8443" secretRequired=""/>
    <Engine name="Catalina2" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
 
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
		    <Context docBase="ham-portal-1.0-SNAPSHOT" path="/" reloadable="true"/>
      </Host>
    </Engine>
  </Service>
  <Service name="Catalina3">
    <Connector port="8089" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URLEncoding="UTF-8"/>
	<Connector port="8012" protocol="AJP/1.3" redirectPort="8443" secretRequired=""/>
    <Engine name="Catalina3" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
 
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
		    <Context docBase="ham-console-1.0-SNAPSHOT" path="/" reloadable="true"/>
      </Host>
    </Engine>
  </Service>

配置完,启动tomcat,在浏览器输入对应的端口号即可

posted @ 2026-06-27 12:03  桃桃不淘1  阅读(2)  评论(0)    收藏  举报