如何配置jetty来监听多个端口

Mar*_*ler 8 configuration webserver jetty

我只是想配置jetty来监听多个端口.我不想要多个实例,也不需要多个webapps,只需要一个码头,一个webapp,但是要监听2个或更多端口.

默认方式不支持多个条目:

<Set name="port"><SystemProperty name="jetty.port" default="8080"/></Set>
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助!

Nic*_*zyk 9

在您的jetty.xml文件中,添加一个新连接器:

<!-- original connector on port 8080 -->
<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">2</Set>
        <Set name="statsOn">false</Set>
        <Set name="confidentialPort">8443</Set>
    <Set name="lowResourcesConnections">20000</Set>
    <Set name="lowResourcesMaxIdleTime">5000</Set>
      </New>
  </Arg>
</Call>

<!-- new connector on port 8081 --> 
<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="8081"/></Set>
        <Set name="maxIdleTime">300000</Set>
        <Set name="Acceptors">2</Set>
        <Set name="statsOn">false</Set>
    <Set name="lowResourcesConnections">20000</Set>
    <Set name="lowResourcesMaxIdleTime">5000</Set>
      </New>
  </Arg>
</Call>
Run Code Online (Sandbox Code Playgroud)

然后开始码头

java -jar start.jar etc\jetty.xml
Run Code Online (Sandbox Code Playgroud)

应该做你想做的.


And*_*ndi 5

如果在嵌入式模式下使用 Jetty,您可以在 Java 代码中打开多个端口:

Server server = new Server();
Connector c1 = new SelectChannelConnector();
c1.setPort(8080);
Connector c2 = new SelectChannelConnector();
c2.setPort(8081);
/* ... even more ports ... */
Connector[] ports = {c1, c2 /* ... */};
server.setConnectors(ports);
Run Code Online (Sandbox Code Playgroud)