我以前在应用程序中使用过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)