pro*_*ane 1 java eclipse jetty embedded-jetty
我正在从 jetty 8 升级到 jetty 9,并且在某些 API 中遇到了一些有关编译失败的问题。
SslSelectChannelConnector 已被删除,从我可以看到带有 secureRequestCustomizer 的 httpConfiguration 替换了它。
但是有很多方法我都找不到。例如
设置请求缓冲区大小
设置响应缓冲区大小
设置接受者
设置最大空闲时间
SessionHandler 不再有 getSessionManager() 方法。
另外 queueThreadPool 不再有 setMaxQueued(int),JettyServer 不再有这两个方法: setThreadPool(QueueThreadPool) setGracefulShutdown(int)
编辑: SslSelectChannelConnector 已弃用。将 SelectChannelConnector 与 SslContextFactory 一起使用。
jettyServer.setThreadPool(threadPool); // --> threadPool is set in the constructor new Server(QueueThreadPool)
jettyServer.setGracefulShutdown(5000); // --> jettyServer.setStopTimeout(5000);
jettyServer.setConnectors(new Connector[] { connector }); // --> ServerConnector which takes https_config
jettyServer.setSendServerVersion(false); // --> https_config.setSendServerVersion(false);
Run Code Online (Sandbox Code Playgroud)
哪里或哪个 API 用于代替上述 API?
还有任何自定义的东西在运行时停止工作,这不是很明显可以找到/看到。
提醒:Jetty 版本控制(自 1995 年以来)是 <servlet_support>.<major_version>.<minor_version>
您正在将主要版本从 8.1 升级到 9.4(这是 6 个主要版本!)。因此,您会看到大量的变化。
SslSelectChannelConnector 已被删除,从我可以看到带有 secureRequestCustomizer 的 httpConfiguration 替换了它。
欢迎来到协议的新世界。
不再有任何协议特定连接器的概念。
ServerConnector是连接器,它没有协议知识,也不需要它。它只是一个到服务器的连接点(甚至不是特定于 TCP/IP 的,例如可以是 Unix 套接字)。
它的配置决定了连接类型、绑定位置以及客户端连接到该端口后如何协商协议。
该ConnectionFactory确定。
在HttpConfiguration决定如何HTTP级别行为功能。
有关说明,请参阅:https : //stackoverflow.com/a/30191878/775715。
请参阅:使用的嵌入式码头示例。开始LikeJettyXml.java。
有关更多示例,请参阅:embedded-jetty-cookbook。
但是有很多方法我都找不到。例如
设置请求缓冲区大小
这不再存在,它与 SPDY 和 HTTP/2 不兼容
有关HttpConfiguration.setRequestHeaderSize(int)控制最大请求标头大小的信息,请参阅。
注意:如果您使用 HTTP/2,我们建议您不要将请求标头大小调整为大于默认值(出于协议兼容性原因)。
设置响应缓冲区大小
这不再存在,它与 SPDY 和 HTTP/2 不兼容。
有关HttpConfiguration.setResponseHeaderSize(int)控制最大响应标头大小的信息,请参阅。
注意:如果您使用 HTTP/2,我们建议您不要将响应头大小调整为大于默认值(出于协议兼容性原因)。
有关HttpConfiguration.setOutputBufferSize(int)输出缓冲区聚合控件的信息,请参阅。(在 HTTP/2 中意义不大,实际上只与 HTTP/1.x 相关)
设置接受者
请参阅 的各种构造函数ServerConnector,它们没有设置器。
设置最大空闲时间
有许多空闲超时设置可供您使用(例如:连接器、连接、端点、线程、线程池、AsyncContext、读取、写入、websocket 会话等...)
根据您的问题,以下是一些似乎相关的示例。
看 ServerConnector.setIdleTimeout(long)
看 HttpConfiguration.setIdleTimeout(long)
看 QueuedThreadPool.setIdleTimeout(int)
SessionHandler 不再有 getSessionManager() 方法。
在过去的 6 个主要版本更新中,会话处理经历了比连接器更大的变化。
看: OneServletContextWithSession.java
另外 queueThreadPool 不再有 setMaxQueued(int),JettyServer 不再有这两个方法: setThreadPool(QueueThreadPool) setGracefulShutdown(int)
min/max in 的配置QueuedThreadPool是构造函数的一部分。没有最小值/最大值的设置器。
要配置Server线程池,请使用允许您传入线程池的构造函数。
注意:如果您使用 HTTP/2 和 html/css/javascript,我们建议您计划增加线程池需求(由于协议的性质)
| 归档时间: |
|
| 查看次数: |
2379 次 |
| 最近记录: |