gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 21:23:40 24 4
gpt4 key购买 nike

如何在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com