`
tcspecial
  • 浏览: 907898 次
  • 性别: 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服务调用,同一个项目中...

    Java thrift服务器和客户端创建实例代码

    对于Thrift服务,我们需要`libthrift`库,以及SLF4J和Servlet API等相关依赖: ```xml &lt;!-- Other dependencies... --&gt; &lt;groupId&gt;org.apache.thrift &lt;artifactId&gt;libthrift &lt;version&gt;0.9.3 &lt;groupId&gt;...

    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`中,我们可以指定服务的协议类型和版本号,如将...

    稍微有点难度的10道java面试题,你会几道?

    - **Servlet容器初始化参数**:允许在部署描述符中配置Servlet容器的行为。 - **HTTP升级机制**:支持从HTTP连接升级到其他协议(如WebSocket)。 综上所述,这些面试题涵盖了Java开发中的重要知识点和技术细节,...

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

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

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

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

    米聊服务端开源实践

    - **功能简介**:Resin是由CAUCHO公司开发的应用服务器,支持Servlet和JSP技术。 - **应用场景**: - **应用部署**:作为应用服务器,Resin承担了应用程序的部署任务。 - **性能优化**:针对内存泄漏等问题,通过...

Global site tag (gtag.js) - Google Analytics