Jetty-Maven-плагин несколько войн отдельные порты

1

Я использую plug-maven-plugin для локального тестирования. То, что я хочу, - это одна команда: запустить команду, запустить кучу контейнеров причалов на отдельных портах, как указано в pom.xml, - я не хочу указывать ее в ходе войны. Мой текущий блок конфигурации плагина выглядит так:

<configuration>
   <scanIntervalSeconds>0</scanIntervalSeconds>
   <contextHandlers>
      <contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
         <war>${basedir}/service-a/target/a.war</war>
         <contextPath>/a</contextPath>
         <allowNullPathInfo>true</allowNullPathInfo>
      </contextHandler>
      <contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
         <war>${basedir}/service-b/target/b.war</war>
         <contextPath>/b</contextPath>
         <allowNullPathInfo>true</allowNullPathInfo>
      </contextHandler>
   </contextHandlers>
</configuration>

Я знаю, что могу указать -Djetty.port, но глобально устанавливает порт. Вышеприведенный пример запускает обе войны в том же экземпляре контейнера причала, который запущен на порту 8080. Кто-нибудь знает переключатель внутри contextHandler, чтобы установить порт или как это сделать, если у меня есть несколько экземпляров всего блока плагина? В каждом примере, который я искал, есть возможность установить его в файле jetty.xml в ходе войны, который я не хочу делать.

  • 0
    Что произойдет, если вы создадите несколько модулей mvn под основным, оба из которых получили причину: работают, но с разными конфигурациями? (хотя это обычно держит консоль, не так ли)
Теги:
maven
jetty
maven-jetty-plugin

2 ответа

1

Это возможно, если вы называете соединители и обработчики контекста

<configuration>
    <connectors>
        <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
            <port>8080</port>
            <name>instance_8080</name>
        </connector>
        <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
            <port>8081</port>
            <name>instance_8081</name>
        </connector>
    </connectors>
    <contextHandlers>           
        <contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
            <war>${basedir}/service-a/target/a.war</war>
            <contextPath>/a</contextPath>
            <connectorNames>
                <item>instance_8080</item>
            </connectorNames>
        </contextHandler>
        <contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
            <war>${basedir}/service-b/target/b.war</war>
            <contextPath>/b</contextPath>
            <connectorNames>
                <item>instance_8081</item>
            </connectorNames>
        </contextHandler>
    </contextHandlers> 
</configuration>

Обратите внимание: эта конфигурация предназначена для org.mortbay.jetty:jetty-maven-plugin.

  • 0
    Это выглядит хорошо, но я, к сожалению, больше не в состоянии проверить, работает ли это. Я дам ему несколько дней, чтобы посмотреть, проверят ли кто-нибудь, но после этого я буду считать, что это правильно, и пометить это как таковое.
0

В вашем плагине причала maven вы можете создать несколько connectors которые могут работать на разных портах. Это первый старт.

Я не уверен в том, как или если эти блоки connector могут запускать разные войны. Они могут ссылаться на различные jetty.xml (хотя у меня не было ничего, кроме проблем с jetty.xml)

http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#configuring-jetty-container

  • 0
    Из связанного doc :: «Обратите внимание, что начиная с jetty-9.0 больше невозможно настроить https-коннектор непосредственно в pom.xml: для этого нужно использовать конфигурационные файлы jetty xml». Единственная альтернатива, подразумеваемая в документации, это использовать org.eclipse.jetty.webapp.WebAppContext (использованный выше), и оттуда не похоже, что вы можете настроить порт из pom.xml.
  • 0
    о как насчет этого. Я использовал 8.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню