11

我正在使用 maven-jetty-plugin 并尝试使用 -Djetty.port=8090 覆盖我的 jetty.xml 设置,但它不起作用。只有当我从 jetty.xml 文件中删除连接器部分时,我才能将端口设为 8090。

所以:

 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:还尝试在 jetty.xml 中使用 SystemProperty 而不是 Property。不工作

4

4 回答 4

7

更新1:确实有效。不知道为什么,但我也在主机上尝试了它作为 SystemProperty 并且它有效。然后我删除了主机并开始工作。

所以最终修复工作jetty.xml连接器conf:

<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>
于 2012-07-25T17:05:35.280 回答
6

我有同样的问题。使固定:

在 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
于 2013-02-01T14:49:14.250 回答
0

if you are using ./jetty.sh start command to start the server, it read configure from start.ini or start.d in base folder, please try to change port (jetty.port) in that and restart the server.

于 2014-03-26T09:12:26.227 回答
0

只需删除“port”内的 SystemProperty 标记,并将新的端口值放入“port”标记内:

在此处输入图像描述

于 2015-02-28T10:27:28.307 回答