Как изменить порты прослушивания WildFly с помощью Maven?

Я использую плагин wildfly-maven для своих интеграционных тестов.

Как изменить номера портов по умолчанию (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]

Проблемы для отслеживания


person Jin Kwon    schedule 13.06.2017    source источник


Ответы (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.

person yntelectual    schedule 13.06.2017
comment
jvmArgs устарел в пользу javaOpts - person Dherik; 16.11.2017

Вы получаете «не удалось запустить через 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> в вашей конфигурации.

person Veselin    schedule 10.02.2018