Как переопределить jetty.xml с помощью jetty.port

Я использую maven-jetty-plugin и пытаюсь переопределить настройку jetty.xml с помощью -Djetty.port=8090, но это не работает. Только когда я удаляю соединительную часть из файла jetty.xml, я получаю порт 8090.

So:

 mvn jetty:run -Djetty.port=8090

С коннектором начинается в порту 8080

Без коннектора запускается в порт 8090

Проблема в том, что мне нужно настроить акцепторы, статистику и другие вещи. Я попытался удалить только порт из разъема, но это не сработало.

Я использую:

JAVA 1.7_05
MAVEN 3.0.4
Jetty 8.1.4
Linux Ubuntu 12.04 64bits

Вот моя конфигурация плагина pom.xml:

<plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>8.1.4.v20120524</version>
            <configuration>
                <stopKey>foo</stopKey>
                <stopPort>9990</stopPort>
                <jettyXml>src/main/webapp/WEB-INF/jetty.xml</jettyXml>
            </configuration>
            <executions>
                <execution>
                    <id>start-jetty</id>
                    <!-- <phase>pre-integration-test</phase> -->
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <scanIntervalSeconds>0</scanIntervalSeconds>
                    </configuration>
                </execution>
                <execution>
                    <id>stop-jetty</id>
                    <!-- <phase>post-integration-test</phase> -->
                    <goals>
                        <goal>stop</goal>
                    </goals>
                </execution>
            </executions>
</plugin>

Конфигурация соединителя Jetty.xml:

<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">4</Set>
        <Set name="statsOn">false</Set>
        <Set name="confidentialPort">8443</Set>
    <Set name="lowResourcesConnections">20000</Set>
    <Set name="lowResourcesMaxIdleTime">5000</Set>
      </New>
  </Arg>
</Call>

Заранее спасибо!

ОБНОВЛЕНИЕ 1: Также пробовали использовать SystemProperty вместо Property в jetty.xml. Не работает


person Gonzalo    schedule 25.07.2012    source источник
comment
Если читатель не хочет переопределять файл jetty.xml, то использование свойства System для переопределения порта по умолчанию в pom работает: <configuration> <systemProperties> <systemProperty> <name>jetty.port</name> <value>${jetty.port}</value> </systemProperty> </systemProperties> </configuration>   -  person MiB    schedule 22.12.2013
comment
Предыдущий комментарий должен быть принятым ответом   -  person Marco Ferrari    schedule 23.05.2014


Ответы (4)


ОБНОВЛЕНИЕ 1: сработало. Не знаю почему, но я попробовал это с хостом также как SystemProperty, и это сработало. Затем я удалил хост и тоже работал.

Итак, окончательное исправление рабочей конфигурации коннектора jetty.xml:

<Call name="addConnector">
  <Arg>
      <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
        <Set name="host"><SystemProperty name="jetty.host" /></Set>
        <Set name="port"><SystemProperty name="jetty.port" default="8080"/></Set>
        <Set name="maxIdleTime">300000</Set>
        <Set name="Acceptors">4</Set>
        <Set name="statsOn">false</Set>
        <Set name="confidentialPort">8443</Set>
    <Set name="lowResourcesConnections">20000</Set>
    <Set name="lowResourcesMaxIdleTime">5000</Set>
      </New>
  </Arg>
</Call>
person Gonzalo    schedule 25.07.2012
comment
Для Jetty 9 см.: git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/plain/ - person Dave Jarvis; 22.01.2015

У меня такая же проблема. Исправить:

В разделе свойств pom определите jetty.port:

<properties>
    <jetty.port>8888</jetty.port>
            ....
</properties>

В конфигурации плагина:

<connectors>
    <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
        <maxIdleTime>3600000</maxIdleTime>
        <port>${jetty.port}</port>
    </connector>

Это позволяет переопределить порт в командной строке с помощью

mvn -D jetty.port=9999 jetty:run
person RobAu    schedule 01.02.2013
comment
дать согласие. порт конфигурации в POM понятен и прост - person Cong De Peng; 19.12.2013
comment
Этот способ не работал с Jetty 9 для меня. Установленный порт не соблюдается. Системное свойство сработало. См. другой комментарий. - person MiB; 22.12.2013
comment
Да, я не могу поверить, что они убрали это из Jetty 9. Похоже, пришло время понизить класс! - person CorayThan; 19.03.2014

если вы используете команду запуска ./jetty.sh для запуска сервера, она читает configure из start.ini или start.d в базовой папке, попробуйте изменить в ней порт (jetty.port) и перезапустить сервер.

person Amit    schedule 26.03.2014

Просто удалите разметку SystemProperty внутри «port» и поместите новое значение порта внутри разметки «port»:

введите здесь описание изображения

person Mohamed Ennahdi El Idrissi    schedule 28.02.2015