一个Tomcat 配置多个应用工程

本文介绍如何在Apache Tomcat中配置多个服务端口,并在不同的端口上部署独立的应用程序。通过修改server.xml文件,添加额外的服务节点及连接器设置,实现多端口多应用的灵活部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文来自:http://xiaofengtoo.javaeye.com/blog/667938

先感谢作者的共享。

以下是原文内容:

关于一个 apache Tomcat  配置多个工程并不同接口的实现方法

如:http://192.168.1.100:8008 一个工程,

      http://192.168.1.100:8090 一个工程

不同于一个tomcat 配置多个工程,但是后面接工程名称的方法,

 

我用的是 apache-tomcat-6.0.14

 

具体实现方法:

找到apache-tomcat-6.0.14/conf/server.xml ,再services 后面添加此段代码:

<!-- 此处  新增的项目配置-->   
  < Service     name = "pro" >      
      < Connector     port = "8090"     protocol = "HTTP/1.1"     connectionTimeout = "20000"     redirectPort = "8444"     />      
    < Connector   port = "9999"   protocol = "AJP/1.3"   redirectPort = "8444"   />   
      < Engine     name = "pro"     defaultHost = "localhost" >      
          < Realm     className = "org.apache.catalina.realm.UserDatabaseRealm"     resourceName = "UserDatabase" />      
          < Host     name = "localhost"     appBase = "webapps"     unpackWARs = "true"     autoDeploy = "true"     xmlValidation = "false"     xmlNamespaceAware = "false" >      
          < Context     docBase = "D:/pro/WebRoot"     path = ""   />            
          </ Host >      
      </ Engine >      
  </ Service >  
以上D:/pro/WebRoot 是我的工程webRoot 路径,大家可自己修改,另pro 也是自定义的。
具体全文如下:
<?xml version='1.0' encoding='utf-8'?>

<Server port="8005" shutdown="SHUTDOWN">

   <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JasperListener" />
   <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

   <GlobalNamingResources>
       <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

<!-- 以上为默认的配置  -->

<!--  此方法为默认的配置方式-->

  <Service name="Catalina">    
    <Connector port="8008" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />  
    <Engine name="Catalina" defaultHost="localhost">     
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
            resourceName="UserDatabase"/>  
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
      </Host>
    </Engine>
  </Service>
 
<!-- 此处  新增的项目配置-->
 <Service   name="pro"> 
     <Connector   port="8090"   protocol="HTTP/1.1"   connectionTimeout="20000"   redirectPort="8444"   /> 
   <Connector port="9999" protocol="AJP/1.3" redirectPort="8444" />
     <Engine   name="pro"   defaultHost="localhost"> 
         <Realm   className="org.apache.catalina.realm.UserDatabaseRealm"   resourceName="UserDatabase"/> 
         <Host   name="localhost"   appBase="webapps"   unpackWARs="true"   autoDeploy="true"   xmlValidation="false"   xmlNamespaceAware="false"> 
         <Context   docBase="D:/pro/WebRoot"   path="" />       
         </Host> 
     </Engine> 
 </Service>

</Server>

以下是我补充的的内容:
在这里面,不能随便配置appBase这个路径,否则你原来发布到webapps下面的应用的路径将会被你配置的路径所替代。因此一定要谨慎这个位置。
### 如何在单个 Tomcat 实例中部署多个 WAR 文件 要在单个 Apache Tomcat 实例中成功部署多个 WAR 文件,可以通过以下方式实现: #### 部署流程说明 1. **准备 WAR 文件** 将要部署的应用程序打包成标准的 WAR 文件。这些文件通常由构建工具(如 Maven 或 Gradle)生成,在项目的 `target` 或 `build/libs` 目录下找到。 2. **放置到 webapps 目录** 将生成的 WAR 文件复制到 Tomcat 的 `webapps/` 目录中[^2]。当 Tomcat 启动时,它会自动检测该目录中的任何新的或更新过的 WAR 文件并将其解压缩为相应的 Web 应用程序。 3. **启动 Tomcat 服务** 启动 Tomcat 服务器后,WAR 文件会被自动解压,并转换为独立的 Web 应用程序实例。每个应用都会拥有自己的上下文路径 (context path),默认情况下基于其文件名定义。例如,名为 `myapp.war` 的文件会在浏览器中通过 URL 路径 `/myapp` 访问。 4. **验证部署状态** 打开浏览器输入地址 http://localhost:8080/manager/html (假设端口未更改),登录管理页面可看到已部署的所有应用程序及其运行状况。 #### 使用 IntelliJ IDEA 进行辅助操作 对于开发者而言,借助 IDE 工具能更高效完成上述过程: - 如果希望直接从命令行控制 IntelliJ IDEA 来简化某些重复性任务,则可通过菜单选项设置命令行启动器来增强工作效率[^4]。 - 对于 Maven 构建项目遇到依赖加载异常的情况,比如发现 pom.xml 和 Java 源码图标颜色变化提示可能存在问题时,应重新关联工程作为 Maven Project 处理[^3]。 以上方法确保了多模块复杂结构下的企业级应用能够在统一容器环境下平稳运作的同时保持良好的维护性和扩展能力。 ```bash # 示例:将 war 文件拷贝至 tomcat/webapps/ cp /path/to/myapp1.war $TOMCAT_HOME/webapps/ cp /path/to/myapp2.war $TOMCAT_HOME/webapps/ # 确认权限无误后再重启tomcat使改动生效 $TOMCAT_HOME/bin/shutdown.sh && $TOMCAT_HOME/bin/startup.sh ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值