Java 在异步thrift客户端中传递URI/上下文路径
我正在尝试构建一个异步thrift客户端。下面是我正在构建的代码Java 在异步thrift客户端中传递URI/上下文路径,java,spring-boot,thrift,Java,Spring Boot,Thrift,我正在尝试构建一个异步thrift客户端。下面是我正在构建的代码 TNonblockingTransport transport = new TNonblockingSocket("127.0.0.1", 8080); TAsyncClientManager clientManager = new TAsyncClientManager(); TProtocolFactory protocolFactory = new TBinaryProtocol.Factory(); TCalculator
TNonblockingTransport transport = new TNonblockingSocket("127.0.0.1", 8080);
TAsyncClientManager clientManager = new TAsyncClientManager();
TProtocolFactory protocolFactory = new TBinaryProtocol.Factory();
TCalculator.AsyncClient client = new TCalculator.AsyncClient(protocolFactory,clientManager,transport);
我的服务器正在运行
你能帮我在这里传递uri吗
在同步客户端的情况下,它很简单
TTransport transport;
transport = new THttpClient("http://localhost:"+8080+"/calculator");
transport.open();
Stacks used: Spring boot 2.2.1 & thrift.9
或者我以错误的方式创建了TNonblockingTransport。基本上,您必须使用TNonblockingSocket以非阻塞方式使用传输。将传输定义更改为使用SocketChannel配置,如下所示: InetSocketAddress将为您接受端口和url:
try (SocketChannel socketChannel = SocketChannel.open()) {
socketChannel.connect(new InetSocketAddress("localhost", port));
TNonblockingTransport transport = new TNonblockingSocket(socketChannel);
}
final Asker.AsyncClient client = new Asker.AsyncClient(
new TCompactProtocol.Factory(),
new TAsyncClientManager(), transport);
基本上,您必须使用TNonblockingSocket以非阻塞方式使用传输。将传输定义更改为使用SocketChannel配置,如下所示: InetSocketAddress将为您接受端口和url:
try (SocketChannel socketChannel = SocketChannel.open()) {
socketChannel.connect(new InetSocketAddress("localhost", port));
TNonblockingTransport transport = new TNonblockingSocket(socketChannel);
}
final Asker.AsyncClient client = new Asker.AsyncClient(
new TCompactProtocol.Factory(),
new TAsyncClientManager(), transport);
谢谢但我无法获得任何InetSocketAddress的实现,它更新了method.code中的URI。为什么你需要uri。服务器正在本地主机上运行:8080/calculator。因此,调用处理程序需要传递URI。谢谢。但我无法获得任何InetSocketAddress的实现,它更新了method.code中的URI。为什么你需要uri。服务器正在本地主机上运行:8080/calculator。因此,调用处理程序需要传递URI。