嵌入Jetty 9并自定义套接字地址、端口和线程池



我以前在应用程序中使用过Jetty 8.1.14作为嵌入式web服务器。现在我正在尝试升级到9.2.10版本。

使用Jetty 8,可以使用"SelectChannelConnector"或"SslSelectChannelConnector"中的setter指定主机地址和端口,还可以使用ThreadPool作为"Server"类中的构造函数参数。

现在,似乎只能在"Server"类中指定一个或另一个。只有地址和/或端口的构造函数变体,或要使用的ThreadPool。我找不到所有三个论点的任何变体。

如何使用Jetty 9指定所有这些参数?我试过:

String bindAddress = "myValue";
int port = 12345;
Server s = new Server(new InetSocketAddress(bindAdress, port));

ThreadPool t = MyHighlyCustomizedThreadPool();
Server s = new Server(t);

使用ServerConnector设置侦听端口、设置侦听主机地址、设置空闲超时和设置默认协议。启动后,可以使用相同的连接器来确定实际侦听端口(如果使用动态分配的端口)、实际侦听主机(如果使用静态主机地址)等。。。

使用HttpConfiguration设置缓冲区、安全标识(用于安全重定向)、调整标题、供电、服务器版本公告等。

使用ConnectionFactory实现来控制协议选择的进程应如何与最近接受的传入连接一起工作。(是的,这在当今的Web基础设施中很重要)

有关HTTP/1.1和SSL+HTTP/1.1(又名HTTPS)的基本示例,请参阅ManyConnectors.java嵌入式示例

有关SPDY的ConnectionFactory行为示例,请参阅SpdyConnector.java示例(注意:在Jetty 9.3.x中,SPDY已被弃用,取而代之的是HTTP/2)

有关TLS+ALPN+HTTP/2的ConnectionFactory行为示例,请参阅Http2Server.java示例(注意:您需要Jetty 9.3.x)

最新更新