我希望配置Jetty监听多个端口,但我不想要多个实例或多个Web应用程序,只需要一个Jetty、一个Web应用程序,但要监听2个或更多端口。
默认方式不支持多个条目:
<Set name="port"><SystemProperty name="jetty.port" default="8080"/></Set>
谢谢您的帮助!
我希望配置Jetty监听多个端口,但我不想要多个实例或多个Web应用程序,只需要一个Jetty、一个Web应用程序,但要监听2个或更多端口。
默认方式不支持多个条目:
<Set name="port"><SystemProperty name="jetty.port" default="8080"/></Set>
<!-- 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>
然后启动Jetty
java -jar start.jar etc\jetty.xml
应该可以满足你的需求。
如果在嵌入式模式下使用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);