Jetty 9.x中连接器中的连接对象在哪里?

Jetty 9.x中连接器中的连接对象在哪里?,jetty,Jetty,当我试图从Jetty 8.1.12迁移到Jetty 9.4.x时,由于以下问题而出现错误 我们使用connector.getConnection()方法。我在Jetty 9.4.x中没有找到任何替代品 这是接下来的问题 我们使用connector.getConnection()获取inet套接字地址 专用InetSocketAddress findFirstInetConnector(服务器){ Connector[]connectors=server.getConnectors(); 如果(连

当我试图从Jetty 8.1.12迁移到Jetty 9.4.x时,由于以下问题而出现错误

我们使用connector.getConnection()方法。我在Jetty 9.4.x中没有找到任何替代品

这是接下来的问题

我们使用connector.getConnection()获取inet套接字地址

专用InetSocketAddress findFirstInetConnector(服务器){
Connector[]connectors=server.getConnectors();
如果(连接器!=null){
用于(连接器:连接器){
对象连接=connector.getConnection();
if(服务器socketchannel的连接实例){
SocketAddress地址=((ServerSocketChannel)连接器.getConnection()).socket().getLocalSocketAddress();
if(InetSocketAddress的地址实例){
返回(InetSocketAddress)地址;
}
}else if(服务器套接字的连接实例){
SocketAddress地址=((ServerSocket)连接器.getConnection()).getLocalSocketAddress();
if(InetSocketAddress的地址实例){
返回(InetSocketAddress)地址;
}
}
}
}
返回null;
}

有谁能帮我找到相同的替代品。

一个连接器已经没有连接了

您不能再随意从中获取
SocketAddress
InetSocketAddress

为什么?

我们有逻辑连接器、物理连接器、非网络连接器、网络连接器、服务器连接器、本地连接器、基于管道的连接器、基于jni的连接器、基于unixsocket的连接器等等

您必须从已启动和正在运行的连接器(如NetworkConnector本地端口和主机)的信息中创建所需的
InetSocketAddress

要查看连接器信息,您可以

用于(连接器连接器:server.getConnectors()) { //连接器名称是什么(可以是null或unset) 字符串connectorName=connector.getName(); //此连接器声明的默认协议是什么? 字符串defaultProtocol=connector.getDefaultConnectionFactory().getProtocol(); //此连接器还具有哪些其他功能? 对于(ConnectionFactory ConnectionFactory:connector.getConnectionFactorys()) { //此特定连接工厂为此特定连接器处理的协议列表 connectionFactory.getProtocols(); if(SslConnectionFactory的连接工厂实例) { //这可以处理基于TLS/SSL的连接 } if(HttpConnectionFactory的connectionFactory实例) { //这可以处理http协议 //获取特定于http的配置 HttpConfiguration httpConfig=((HttpConnectionFactory)connectionFactory).getHttpConfiguration(); //哪个端口被认为是安全的 httpConfig.getSecurePort(); //什么方案被认为是安全的 httpConfig.getSecureScheme(); } if(HTTP2ServerConnectionFactory的connectionFactory实例) { //可以处理加密的http/2协议(和alpn功能) } if(HTTP2CServerConnectionFactory的连接工厂实例) { //这可以处理http/2的特殊明文“h2c”协议(无alpn功能) } } 如果(!connector.isRunning()) { //除非连接器已启动,否则无法信任以下信息 继续; } if(网络连接器的连接器实例) { //我们有一个网络连接器 网络连接器网络连接器=(网络连接器)连接器; //它正在监听什么接口? 字符串interfaceName=networkConnector.getHost(); //它要去哪个本地港口? int localPort=networkConnector.getLocalPort(); } }