Skip to content

Instantly share code, notes, and snippets.

@ThomasLau
Forked from roymax/ThriftClient
Last active August 29, 2015 14:27
Show Gist options
  • Save ThomasLau/713c07b22a62a33da1ed to your computer and use it in GitHub Desktop.
Save ThomasLau/713c07b22a62a33da1ed to your computer and use it in GitHub Desktop.
grizzly-thrift
<dependency>
<groupId>org.glassfish.grizzly</groupId>
<artifactId>grizzly-thrift</artifactId>
<version>2.2.1</version>
</dependency>
public void testGrizzly(String ip, int port) throws IOException, InterruptedException, ExecutionException, TimeoutException, TException {
// init client
final FilterChainBuilder clientFilterChainBuilder = FilterChainBuilder.stateless();
clientFilterChainBuilder.add(new TransportFilter());
// clientFilterChainBuilder.add(new ThriftFrameFilter());
clientFilterChainBuilder.add(new ThriftClientFilter());
final TCPNIOTransportBuilder builder = TCPNIOTransportBuilder.newInstance();
final ThreadPoolConfig config = builder.getWorkerThreadPoolConfig();
config.setCorePoolSize(5).setMaxPoolSize(5).setQueueLimit(-1);
final TCPNIOTransport grizzlyTransport = builder.build();
grizzlyTransport.setProcessor(clientFilterChainBuilder.build());
grizzlyTransport.setKeepAlive(true);
grizzlyTransport.start();
final Future<Connection> future = grizzlyTransport.connect(ip, port);
final Connection connection = future.get(10, TimeUnit.SECONDS);
final TTransport tGrizzlyTransport = TGrizzlyClientTransport.create(connection);
final TProtocol tprotocol = new TCompactProtocol(tGrizzlyTransport); // or TCompactProtocol
// to use
Ask.Client client = new Ask.Client(tprotocol);
AskQuestVO vo = client.loadAskQuest(349474);
System.out.println(vo.toString());
tGrizzlyTransport.close();
connection.closeSilently();
grizzlyTransport.stop();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment