java - 如何在将在不同端口上运行的tomcat中部署多个Web应用程序?

标签 java tomcat

如何在 tomcat 中部署多个运行在不同端口上的 java web 应用程序? - 如何进行设置,使不同的网络应用程序将在不同的端口上运行 - 实现这一目标需要做些什么?

最佳答案

您需要在 server.xml 文件 (tomcat_home/conf) 中设置另一个服务。如果你没有更改你的服务器文件,你应该已经有一个名为 Catalina 的文件(我使用的是 Tomcat 5.5,你可能会根据版本的不同而略有不同)

<Service name="Dev2">
    <Connector port="8090" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />
    <Connector port="8092" 
               enableLookups="false" redirectPort="9443" protocol="AJP/1.3" />

    <Engine name="Dev2" defaultHost="MyDev">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
      <Host name="MyDev" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
      </Host>
    </Engine>
</Service>

请注意,名称已从 Catalina 更改为 Dev2,localhost 更改为 MyDev。将这些更改为您认为适合您的应用程序的任何内容。端口和连接器也发生了变化。 设置新服务后,您需要将应用程序部署到适当的服务/端口。您可以通过使用 XML 文件(参见 Virtual Hosting)

来完成此操作
Tomcat_Home/conf/Catalina/localhost/

Tomcat_Home/conf/Dev2/MyDev/

针对您正在设置的各个端口

此时您所要做的就是添加更多文件以将服务指向您的应用程序。 例如,在 Tomcat_Home/conf/Dev2/MyDev/ 下,我有一个名为 Another.xml 的文件,该文件包含以下内容

<Context path="/" docBase="C:/to_delete" debug="10" crossContext="false">
</Context>

现在我可以使用网址 http://127.0.0.1:8090/Another 访问新应用程序 如果我尝试使用我的默认端口 8080 访问它,我会收到错误消息,因为该应用程序未部署到该给定端口。

有关此设置的一些注意事项。如果您使用 VirtualVM 查看应用程序,您会注意到它们共享相同的进程 ID。因此,您必须格外小心您的资源。它们将使用相同的堆空间,并且所有线程都将显示在同一个列表中。如果您已登录您的应用程序(即 Log4j),请确保您可以选择显示哪个线程正在执行工作,否则可能很难判断这将来自哪个端口/应用程序。

正如 Bozho 已经指出的,简单地运行两个 Tomcat 实例而不是一个服务器监听多个端口可能更容易。

关于java - 如何在将在不同端口上运行的tomcat中部署多个Web应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4366843/

相关文章:

tomcat - Kie-Drools Workbench 部署错误

java - 如何区分空值字段和 jackson 库中不存在的字段

java - Tomcat 的接受计数

java - Tomcat 8 启动多次 [LifecycleException]

java - 将 Apache Spark 添加到 Eclipse Maven 项目时出现问题

java - 带有 Jersey 和 tomcat 错误 : 404 的 Restful Web 服务

Tomcat 服务器和域映射?

Java 应用程序/ArrayList 与直接数据库查询

java - 如何在Android Studio 3.3中正确实现MapQuest的API

Java Android GCM 获取 crash_key