thrift servlet
程序员文章站
2022-05-28 14:14:46
...
Thrift通常以独立服务存在,也支持HTTP协议,以servlet方式在Tomcat中运行。
一. 服务端Servlet
实现比较简单,只需实现TExtensibleServlet,并在getProcessor()中填充实现类。
/** * Thrift servlet */ @WebServlet(name="thrifttest",value="/thrifttest") public class ThriftService extends TExtensibleServlet { private static final long serialVersionUID = 1L; @Override protected TProtocolFactory getInProtocolFactory() { TProtocolFactory factory = new TCompactProtocol.Factory(); return factory; } @Override protected TProtocolFactory getOutProtocolFactory() { TProtocolFactory factory = new TCompactProtocol.Factory(); return factory; } @Override protected TProcessor getProcessor() { // 接口实现类 ThriftServiceImpl impl = new ThriftServiceImpl(); // 返回处理器 TProcessor tProcesser = new SimpleThriftService.Processor<SimpleThriftService.Iface>(impl); return tProcesser; } }
二. 客户端
/** * Http thrift client */ public static void httpClient() { String url = "http://host:8080/servlet3/thrifttest"; try { TTransport transport = new THttpClient(url); TProtocol protocol = new TCompactProtocol(transport); // HTTP通信协议 SimpleThriftService.Client client = new SimpleThriftService.Client(protocol); transport.open(); int val = client.getInt(10); // 调用方法 System.out.println( "Val: " + val ); transport.close(); } catch (TException e) { e.printStackTrace(); } }
三. 协议分析
上一篇: Thrift 使用
下一篇: 设计模式之观察者模式
推荐阅读
-
聊聊在Servlet中怎么上传文件
-
Java Servlet 运行原理分析
-
Servlet第二篇【Servlet调用图、Servlet细节、ServletConfig、ServletContext】
-
jsp内置对象pageContext如何在Servlet中获取值?
-
Servlet转发到JSP页面出现路径问题怎么办?
-
CGI和servlet运行方式本质的区别是什么?PHP和Java在Web开发的原理有哪些本质不同?
-
php有没有像jsp里头的servlet处理机制?这样处理又有什么好处
-
php实现的thrift socket server
-
servlet执行update报错ORA-12518
-
快速建立Servlet和JSP的运行、调试和编译环境