Ответ 1
Вам необходимо настроить другую службу в файле 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. Измените их на все, что вам подходит для вашего приложения. Также изменились порты и разъемы. После установки новой службы вам необходимо развернуть приложения на соответствующий Service/Port. Вы достигаете этого, используя файлы XML в разделе (Виртуальный хостинг)
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 для просмотра приложения, вы заметите, что они имеют один и тот же идентификатор процесса. Поэтому вы должны быть осторожны с вашими ресурсами. Они будут использовать одно и то же пространство кучи, и все потоки будут отображаться в том же списке. Если вы регистрируетесь в своих приложениях (например, Log4j), убедитесь, что у вас есть опция, показывающая, какой поток выполняет эту работу, так как может быть сложно сказать, какой порт/приложение будет использовать это.
Как уже указывал Божо, может быть проще просто запустить два экземпляра Tomcat вместо одного сервера, прослушивающего несколько портов.