Jetty 9.x中连接器中的连接对象在哪里?
当我试图从Jetty 8.1.12迁移到Jetty 9.4.x时,由于以下问题而出现错误 我们使用connector.getConnection()方法。我在Jetty 9.4.x中没有找到任何替代品 这是接下来的问题 我们使用connector.getConnection()获取inet套接字地址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(); 如果(连
专用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();
}
}