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(); } }
三. 协议分析
相关推荐
public ThriftServlet(MyService.Processor processor) { this.processor = processor; } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, ...
首先,Thrift 提供了一个名为 `ThriftServlet` 的组件,它是将Thrift服务与Java Servlet容器(如Tomcat、Jetty等)集成的关键。`ThriftServlet` 是一个实现了Servlet接口的类,可以处理HTTP请求并将它们转化为Thrift...
thrift 生成的java包servlet-api-2.5.jar
在IT行业中,Thrift、TypeScript和Servlet是三个非常重要的技术组件,它们分别在不同的层面上发挥着关键作用。在这个名为"thrift-typescript-servlet-example"的项目中,我们将探讨如何将它们集成以实现一个高效的跨...
- **servlet-api-2.5.jar**: 这是 Java Servlet API,用于开发 Web 应用程序,与服务器交互。 - **commons-logging-1.1.1.jar**: Apache Commons Logging 是一个日志抽象层,允许开发者选择底层的日志实现。 ...
HttpRequestHandler接口用于暴露http服务,这样就可以接受http的请求,这个如果使用servlet也是可以的。RemoteExporter这块其实主要就是使用了它getServiceInterface和getProxyForService两个方法,这个和thrift...
8. **servlet-api-2.5.jar**:Servlet API是Java Web应用的标准接口,用于与Web服务器交互。在Thrift服务部署到Web服务器上时,这个库是必要的。 9. **commons-logging-1.1.1.jar**:Apache Commons Logging是一个...
如何连接项目非常简单: repositories { jcenter()}compile ' info.developerblog.spring.thrift:spring-thrift-starter:+ '如何使用服务器端注释@ThriftController(“ servlet_path”)帮助您构建服务器控制器以...
3. **服务暴露**:Thrift服务通常通过自定义的服务器运行,而Http Invoker服务可以作为Spring MVC的一部分通过Servlet容器(如Tomcat)暴露。需要重新配置服务启动和监听的端点。 4. **客户端调用**:Thrift客户端...
thrift的各种服务 本工程为thrift提供的各种服务 1.thrift-pool工程 thrift连接池 2.thrift-service工程 基于thrift的微服务框架 thrift不仅支持tcp/ip协议的rpc调用,也支持http协议的rest服务调用,同一个项目中...
对于Thrift服务,我们需要`libthrift`库,以及SLF4J和Servlet API等相关依赖: ```xml <!-- Other dependencies... --> <groupId>org.apache.thrift <artifactId>libthrift <version>0.9.3 <groupId>...
这可能包括HTTP请求和响应的处理、会话管理、MVC(模型-视图-控制器)架构的支持、模板引擎或者对常见Web框架如Spring或Servlet API的封装。 结合这两个信息,我们可以推断这个压缩包可能包含了一个整合了Thrift和...
commons-codec-1.4.jar commons-lang-2.5.jar commons-logging-1.1.1.jar httpclient-4.1.3.jar ...log4j-1.2.14.jar servlet-api-2.5.jar slf4j-api-1.5.8.jar slf4j-log4j12-1.5.8.jar
支持以servlet方式嵌入web容器(tomcat/weblogic/jboss之类)运行2、 也可以直接用嵌入式jetty直接从jar包运行###支持javascript调用支持js直接调用,post的json格式为:以下格式无需手动拼写,thrift生成的js客户端会...
在Java中,RPC框架有很多种,如Hessian、gRPC、Dubbo、Thrift等。本实例将主要介绍基于XML-RPC的Java客户端实现。 XML-RPC是一种简单的基于HTTP协议的远程过程调用协议,它使用XML作为数据交换格式。在Java中,...
以Hessian为例,为了使用Hessian协议,我们需要引入相应的依赖,如`com.caucho.hessian`,`javax.servlet.servlet-api`和`org.mortbay.jetty.jetty`。在`provider.xml`中,我们可以指定服务的协议类型和版本号,如将...
- **Servlet容器初始化参数**:允许在部署描述符中配置Servlet容器的行为。 - **HTTP升级机制**:支持从HTTP连接升级到其他协议(如WebSocket)。 综上所述,这些面试题涵盖了Java开发中的重要知识点和技术细节,...
Hadoop的Hadoop RPC、Google的gRPC和Apache的Thrift都是常见的RPC框架。在Java中,Dubbo是阿里巴巴开源的高性能RPC框架,它支持服务治理、负载均衡、故障切换等功能,适合大型分布式系统。 4. **阿里云服务接入**:...
- **thrift协议**:提供了优化的报文头,适用于长连接和NIO异步传输。 每种协议的配置都相对简单,可以通过Dubbo的XML配置或者注解方式来指定。例如,配置dubbo协议时,可以这样设置: ```xml ``` 关于序列化方式...
- **功能简介**:Resin是由CAUCHO公司开发的应用服务器,支持Servlet和JSP技术。 - **应用场景**: - **应用部署**:作为应用服务器,Resin承担了应用程序的部署任务。 - **性能优化**:针对内存泄漏等问题,通过...