1

我想将 Jetty 9 正在侦听的默认端口从 8080 更改为 80。我将 jetty-http.xml 文件编辑为如下所示:

<Call name="addConnector">
<Arg>
  <New class="org.eclipse.jetty.server.ServerConnector">
    <Arg name="server"><Ref refid="Server" /></Arg>
    <Arg name="factories">
      <Array type="org.eclipse.jetty.server.ConnectionFactory">
        <Item>
          <New class="org.eclipse.jetty.server.HttpConnectionFactory">
            <Arg name="config"><Ref refid="httpConfig" /></Arg>
          </New>
        </Item>
      </Array>
    </Arg>
    <Set name="host"><Property name="jetty.host" /></Set>
    <Set name="port"><Property name="jetty.port" default="80" /></Set>
    <Set name="idleTimeout"><Property name="http.timeout" default="30000"/></Set>
  </New>
</Arg>

但是,由于某些奇怪的原因,当我启动服务器时,它仍然在 8080 上侦听。

4

1 回答 1

4

按照您定义 XML 的方式,它将jetty.port首先使用任何属性,然后如果未找到,则使用您的硬编码端口 80。

检查您${jetty.home}/start.ini以及您${jetty.home}/start.d/*的该属性的文件。

或者,运行$ java -jar start.jar --help并查看它是否按照该命令输出末尾的定义显示)

$ java -jar start.jar --help

(...snip...)

  The current start.ini arguments are:

    OPTIONS=Server,websocket,resources,ext
    threads.min=10
    threads.max=200
    threads.timeout=60000
    jetty.dump.start=false
    jetty.dump.stop=false
    etc/jetty.xml
    OPTIONS=jmx
    etc/jetty-jmx.xml
    OPTIONS=jsp
    jetty.port=8080
    http.timeout=30000
    etc/jetty-http.xml

此时,您有 2 个选项。

  1. 不要编辑 XML 文件,只需将start.ini条目配置为jetty.port

  2. 将 XML 文件条目更改为不查找该属性。

<Set name="port">80</Set>
于 2013-05-21T13:24:41.713 回答