Развернуть несколько войн в Причал
Я использую плагин Jetty Maven для развертывания некоторых войн. У меня есть 2 модуля: moduleA.war на порт 8180 moduleB.war на порт 8380
Когда я развертываю войну с помощью плагина maven jetty, оба веб-приложения пытаются запустить порт 8180, хотя я устанавливаю разъемы для обоих приложений. Вот моя конфигурация POM для этого:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.1.3.v20100526</version>
<configuration>
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>8180</port>
<name>instance_8180</name>
</connector>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>8380</port>
<name>instance_8380</name>
</connector>
</connectors>
<contextHandlers>
<!-- <contextHandler implementation="org.mortbay.jetty.plugin.JettyWebAppContext"> -->
<contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
<war>/${project.build.directory}/user-mgmt-web-1.0-SNAPSHOT.war</war>
<contextPath>/user-mgmt-web</contextPath>
<connectorNames>
<item>instance_8180</item>
</connectorNames>
</contextHandler>
<!-- <contextHandler implementation="org.mortbay.jetty.plugin.JettyWebAppContext"> -->
<contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
<war>/${project.build.directory}/services-web-1.0-SNAPSHOT.war</war>
<contextPath>/services-web</contextPath>
<connectorNames>
<item>instance_8380</item>
</connectorNames>
</contextHandler>
</contextHandlers>
<stopPort>80</stopPort>
<stopKey>stop</stopKey>
</configuration>
<executions>
<execution>
<id>start-container</id>
<phase>pre-integration-test</phase>
<goals>
<goal>stop</goal>
<goal>run</goal>
</goals>
<configuration>
<scanIntervalSeconds>0</scanIntervalSeconds>
<daemon>true</daemon>
</configuration>
</execution>
<execution>
<id>stop-container</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
Я хотел бы знать, как сделать запуск второго веб-приложения на назначенном порту. Когда я запускаю его, когда контейнер завершает инициализацию второго веб-приложения, я получаю адрес, который уже используется.
Ассане
1 ответ
Я думаю, что два разных модуля с двумя разными портами работают только в нескольких экземплярах. В вашем случае активируется только первый номер порта. Установите время простоя для первого порта.
<port>8180</port>
<maxIdleTime>"put your time"</maxIdleTime>
Затем запустите другой порт.
Если выше не работает, попробуйте этот ниже
В вашем jetty.xml добавьте новый соединитель
<!-- original connector on port 8080 -->
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<Set name="host"><Property name="jetty.host" /></Set>
<Set name="port"><Property name="jetty.port" default="8080"/></Set>
<Set name="maxIdleTime">300000</Set>
<Set name="Acceptors">2</Set>
<Set name="statsOn">false</Set>
<Set name="confidentialPort">8443</Set>
<Set name="lowResourcesConnections">20000</Set>
<Set name="lowResourcesMaxIdleTime">5000</Set>
</New>
</Arg>
</Call>
<!-- new connector on port 8081 -->
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<Set name="host"><Property name="jetty.host" /></Set>
<Set name="port"><Property name="jetty.port" default="8081"/></Set>
<Set name="maxIdleTime">300000</Set>
<Set name="Acceptors">2</Set>
<Set name="statsOn">false</Set>
<Set name="lowResourcesConnections">20000</Set>
<Set name="lowResourcesMaxIdleTime">5000</Set>
</New>
</Arg>
</Call>