`
tcspecial
  • 浏览: 901682 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

thrift servlet

    博客分类:
  • java
阅读更多

 

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();
	}  
} 

 

三. 协议分析

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 72.8 KB
分享到:
评论

相关推荐

    thrift实现http协议案例

    public ThriftServlet(MyService.Processor processor) { this.processor = processor; } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, ...

    Apache Thrift 初学小讲(三)【http】

    首先,Thrift 提供了一个名为 `ThriftServlet` 的组件,它是将Thrift服务与Java Servlet容器(如Tomcat、Jetty等)集成的关键。`ThriftServlet` 是一个实现了Servlet接口的类,可以处理HTTP请求并将它们转化为Thrift...

    thrift 生成的java包servlet-api-2.5.jar

    thrift 生成的java包servlet-api-2.5.jar

    thrift-typescript-servlet-example:Thrift、TypeScript、Servlet

    在IT行业中,Thrift、TypeScript和Servlet是三个非常重要的技术组件,它们分别在不同的层面上发挥着关键作用。在这个名为"thrift-typescript-servlet-example"的项目中,我们将探讨如何将它们集成以实现一个高效的跨...

    thrift 生成的java包 全部的

    - **servlet-api-2.5.jar**: 这是 Java Servlet API,用于开发 Web 应用程序,与服务器交互。 - **commons-logging-1.1.1.jar**: Apache Commons Logging 是一个日志抽象层,允许开发者选择底层的日志实现。 ...

    thrift-spring-http代码实例

    HttpRequestHandler接口用于暴露http服务,这样就可以接受http的请求,这个如果使用servlet也是可以的。RemoteExporter这块其实主要就是使用了它getServiceInterface和getProxyForService两个方法,这个和thrift...

    Thrift编程需要的JAR包

    8. **servlet-api-2.5.jar**:Servlet API是Java Web应用的标准接口,用于与Web服务器交互。在Thrift服务部署到Web服务器上时,这个库是必要的。 9. **commons-logging-1.1.1.jar**:Apache Commons Logging是一个...

    spring-thrift-starter:一组很酷的注释,可帮助您使用Spring Boot构建Thrift应用程序

    如何连接项目非常简单: repositories { jcenter()}compile ' info.developerblog.spring.thrift:spring-thrift-starter:+ '如何使用服务器端注释@ThriftController(“ servlet_path”)帮助您构建服务器控制器以...

    Thrift转SpringHttpInvoker

    3. **服务暴露**:Thrift服务通常通过自定义的服务器运行,而Http Invoker服务可以作为Spring MVC的一部分通过Servlet容器(如Tomcat)暴露。需要重新配置服务启动和监听的端点。 4. **客户端调用**:Thrift客户端...

    thrift的各种服务和各种源代码

    thrift的各种服务 本工程为thrift提供的各种服务 1.thrift-pool工程 thrift连接池 2.thrift-service工程 基于thrift的微服务框架 thrift不仅支持tcp/ip协议的rpc调用,也支持http协议的rest服务调用,同一个项目中...

    common-thrift-bson-3.0.0-M2.zip

    这可能包括HTTP请求和响应的处理、会话管理、MVC(模型-视图-控制器)架构的支持、模板引擎或者对常见Web框架如Spring或Servlet API的封装。 结合这两个信息,我们可以推断这个压缩包可能包含了一个整合了Thrift和...

    thrift090其他包

    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

    thrift-service-framework:一个基于facebook thrift rpc框架的服务框架,支持http rpc js客户端调用

    支持以servlet方式嵌入web容器(tomcat/weblogic/jboss之类)运行2、 也可以直接用嵌入式jetty直接从jar包运行###支持javascript调用支持js直接调用,post的json格式为:以下格式无需手动拼写,thrift生成的js客户端会...

    java rpc 实例

    在Java中,RPC框架有很多种,如Hessian、gRPC、Dubbo、Thrift等。本实例将主要介绍基于XML-RPC的Java客户端实现。 XML-RPC是一种简单的基于HTTP协议的远程过程调用协议,它使用XML作为数据交换格式。在Java中,...

    0819分布式服务治理-dubbo1

    以Hessian为例,为了使用Hessian协议,我们需要引入相应的依赖,如`com.caucho.hessian`,`javax.servlet.servlet-api`和`org.mortbay.jetty.jetty`。在`provider.xml`中,我们可以指定服务的协议类型和版本号,如将...

    快速开发基于Java的服务端程序,分布式RPC,阿里云快速接入。.zip

    Hadoop的Hadoop RPC、Google的gRPC和Apache的Thrift都是常见的RPC框架。在Java中,Dubbo是阿里巴巴开源的高性能RPC框架,它支持服务治理、负载均衡、故障切换等功能,适合大型分布式系统。 4. **阿里云服务接入**:...

    第六课:Dubbo协议模块源码解析1

    - **thrift协议**:提供了优化的报文头,适用于长连接和NIO异步传输。 每种协议的配置都相对简单,可以通过Dubbo的XML配置或者注解方式来指定。例如,配置dubbo协议时,可以这样设置: ```xml ``` 关于序列化方式...

    dubbo-admin-2.6.0.war(dubbo监控中心)

    1. **Dubbo**:Dubbo是阿里巴巴开源的高性能RPC框架,它提供了服务治理、动态配置、熔断、负载均衡等功能,支持多种协议,如HTTP、RMI、Hessian、Thrift等。 2. **服务注册与发现**:Zookeeper作为服务注册中心,...

    IT 单词1

    31. **Thrift**:Thrift是Facebook开发的一种跨语言的服务开发框架,用于构建可扩展的、高性能的服务。 32. **Memcached**:Memcached是一个分布式内存对象缓存系统,用于减少数据库负载,提高Web应用性能。 33. *...

    java

    - Web开发:使用Servlet、JSP、Spring Boot等框架构建企业级Web应用。 - Android开发:Android操作系统的基础是Java,开发者通常使用Java或Kotlin来编写Android应用。 - 大数据处理:Apache Hadoop、Spark等大数据...

Global site tag (gtag.js) - Google Analytics