Как мога да променя портовете за слушане на 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]

Проблеми за проследяване


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