Как я могу изменить порты прослушивания WildFly с Maven?
Я использую wildfly-maven-plugin для моих интеграционных тестов.
Как изменить номера портов по умолчанию (8080, 8443)?
Я не смог найти никакого свойства конфигурации для этих номеров портов.
ОБНОВИТЬ
Я попытался yntelectual на вопрос, но номера портов по-прежнему имеют значения по умолчанию.
Я нашел это, и номера портов изменены. Но цель запуска не удается, что приводит к "не удалось запустить через XX секунд", возможно, некоторые процедуры сигнализации не знают измененный порт.
<executions>
<execution>
<id>wildfly-start</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>wildfly-deploy</id>
<phase>pre-integration-test</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
<execution>
<id>wildfly-undeploy</id>
<phase>post-integration-test</phase>
<goals>
<goal>undeploy</goal>
</goals>
</execution>
<execution>
<id>wildfly-shutdown</id>
<phase>post-integration-test</phase>
<goals>
<goal>shutdown</goal>
</goals>
</execution>
</executions>
С помощью jvmArgs
<configuration>
<jvmArgs>-Djboss.socket.binding.port-offset=40000</jvmArgs>
</configuration>
Количество портов по-прежнему в их значения по умолчанию.
14:25:34,244 INFO ... Undertow HTTP listener default listening on 127.0.0.1:8080
14:25:35,107 INFO ... Undertow HTTPS listener https listening on 127.0.0.1:8443
14:25:40,183 INFO ... Http management interface listening on http://127.0.0.1:9990/management
14:25:40,183 INFO ... Admin console listening on http://127.0.0.1:9990
С помощью server-args
<configuration>
<server-args>
<server-arg>-Djboss.socket.binding.port-offset=40000</server-arg>
</server-args>
</configuration>
Номера портов изменились, но start
цель не заканчивается
14:29:35,535 INFO ... Undertow HTTP listener default listening on 127.0.0.1:48080
14:29:36,543 INFO ... Undertow HTTPS listener https listening on 127.0.0.1:48443
14:29:41,535 INFO ... Http management interface listening on http://127.0.0.1:49990/management
14:29:41,535 INFO ... Admin console listening on http://127.0.0.1:49990
BUILD FAILURE
------------------------------------------------------------------------
14:30:07,345 INFO ... Undertow HTTPS listener https stopped, was bound to 127.0.0.1:48443
14:30:07,347 INFO ... Undertow HTTP listener default suspending
14:30:07,357 INFO ... Undertow HTTP listener default stopped, was bound to 127.0.0.1:48080
14:30:07,359 INFO ... Undertow 1.4.0.Final stopping
14:30:07,365 INFO ... WildFly Full 10.1.0.Final (WildFly Core 2.2.0.Final) stopped in 34ms
[INFO] Final Memory: 34M/460M
------------------------------------------------------------------------
Failed to execute goal org.wildfly.plugins:wildfly-maven-plugin:1.2.0.Alpha5:start (wildfly-start) on project ...
The server failed to start:
The server did not start within 60 seconds. -> [Help 1]
Проблемы для отслеживания
2 ответа
С помощью плагина wildfly maven вы можете передать любую переменную окружения или jvm процессу сервера. JBoss/Wildfly имеет понятие смещения порта, так что вы можете добавить пользовательское значение ко всем значениям номера порта по умолчанию, например, запуск Сервера со смещением порта 100, приведет к прослушиванию порта http на 8180. Для этого с плагином maven просто укажите это как jvm arg:
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<configuration>
<jvmArgs>-Djboss.socket.binding.port-offset=100</jvmArgs>
</configuration>
</plugin>
Если вы хотите переопределить любое другое значение, вам просто нужно знать его имя. Взглянув на конфигурацию wildfly, вы увидите, что http-порт, например, определен в привязке сокетов следующим образом:
<socket-binding name="http" port="${jboss.http.port:8080}"/>
Выражение указывает, что если переменная с именем jboss.http.port
существует, он будет использоваться в качестве значения. В противном случае сервер вернется к значению, указанному после двоеточия. :8080
, Точно так же порт https можно переопределить, установив свойство jboss.https.port
, Для получения дополнительной информации просто просмотрите файл конфигурации (по умолчанию standalone.xml
) и документы по плагину wildfly.
Вы получаете сообщение "Не удалось запустить через XX секунд", поскольку необходимо указать порт управления для подключаемого модуля maven:
В твоем случае
<configuration>
<server-args>
<server-arg>-Djboss.socket.binding.port-offset=40000</server-arg>
</server-args>
<port>49990</port>
</configuration>
В зависимости от вашего варианта использования может быть лучше установить порты по одному
<configuration>
<server-args>
<server-arg>-Djboss.http.port=8080</server-arg>
<server-arg>-Djboss.https.port=8443</server-arg>
<server-arg>-Djboss.management.http.port=9991</server-arg>
<server-arg>-Djboss.management.https.port=9993</server-arg>
</server-args>
<port>9991</port>
</configuration>
В этом ответе Джеймс Р. Перкинс объясняет, почему вам нужен <port>
в вашей конфигурации.