参考文档:http://thrift.apache.org/

1.下载需要的文件

地址:http://thrift.apache.org/download  需要下载

  • thrift-0.12.0.tar.gz
  • Thrift compiler for Windows (thrift-0.12.0.exe)

2. 下载.thrift文件

  • shared.thrift: https://github.com/apache/thrift/blob/master/tutorial/shared.thrift
  • tutorial.thrift: https://github.com/apache/thrift/blob/master/tutorial/tutorial.thrift

3. 生成.java文件

进入thrift-0.12.0.exe所在目录,输入命令:

thrift -r --gen java tutorial.thrift

产生文件夹 gen-Java文件夹,里面包含两个文件夹shared和tutorial。将文件夹移动至我们工程的src/main/java目录下。

4. 新建Maven工程,dependency里增加

<dependency><groupId>org.apache.thrift</groupId><artifactId>libthrift</artifactId><version>0.12.0</version>
</dependency>

5. client & server & CalculatorHandler

文件内容来自:http://thrift.apache.org/tutorial/java

将JavaClient.java和JavaServer.java放在src/main/java下。此时目录结构如下:

6. 运行JavaServer的main函数

报错:

 Starting the simple server...org.apache.thrift.transport.TTransportException: Error creating the transportat org.apache.thrift.transport.TSSLTransportFactory.createSSLContext(TSSLTransportFactory.java:)at org.apache.thrift.transport.TSSLTransportFactory.getServerSocket(TSSLTransportFactory.java:)at server.JavaServer.secure(JavaServer.java:)at server.JavaServer$.run(JavaServer.java:)at java.lang.Thread.run(Thread.java:)Caused by: java.io.IOException: Could not load file: ../../lib/java/test/.keystoreat org.apache.thrift.transport.TSSLTransportFactory.getStoreAsStream(TSSLTransportFactory.java:)at org.apache.thrift.transport.TSSLTransportFactory.createSSLContext(TSSLTransportFactory.java:)...  more

  原因是secure模式需要有密钥,代码里需将名为.keystore的密钥放在../../lib/java/test目录下。如果使用simple模式,则不需要。于是,我修改了JavaServer.java代码,将new Thread(secure).start(); 注释掉了,再次启动,未报错。

7. 运行JavaClient的main函数

指明使用simple模式运行。

8. 运行结果

客户端:

ping()
1+1=2
Invalid operation: Cannot divide by 0
15-10=5
Check log: 5Process finished with exit code 0

服务端:

Starting the simple server...
ping()
add(1,1)
calculate(1, {DIVIDE,1,0})
calculate(1, {SUBTRACT,15,10})
getStruct(1)

  

转载于:https://www.cnblogs.com/sunada2005/p/10981454.html

thrift java first demo相关推荐

  1. Apache Thrift - java开发详解

    2019独角兽企业重金招聘Python工程师标准>>> Apache Thrift - java开发详解 博客分类: java 架构 中间件 1.添加依赖 jar <depen ...

  2. Java类Demo中存在_Java中的数据类型转换

    先来看一个题: Java类Demo中存在方法func0.func1.func2.func3和func4,请问该方法中,哪些是不合法的定义?( ) public class Demo{ float fu ...

  3. Thrift Java Servers Compared

    2019独角兽企业重金招聘Python工程师标准>>> Thrift Java Servers Compared This article talks only about Java ...

  4. 海康威视(HIKVISION) JAVA SDK Demo成功运行

    海康威视(HIKVISION) JAVA SDK Demo成功运行 引子 下载 说明 代码编译 添加文件 问题 排查 总结 引子 调海康的JAVA SDK花费时间较长,所以记录下,为其他小伙伴填填坑, ...

  5. java用虹软人脸识别SDK实现人脸识别,运行ArcSoft的Java版本Demo出错,未检出人脸

    java.lang.UnsatisfiedLinkError: Can't load library: d:\face_libs\libarcsoft_ java用虹软人脸识别SDK实现人脸识别 网上 ...

  6. java用虹软人脸识别SDK实现人脸识别,运行ArcSoft的Java版本Demo出错,未检出人脸(已解决)

    java用虹软人脸识别SDK实现人脸识别,运行ArcSoft的Java版本Demo出错,未检出人脸问题已解决!!! 原因: 虹软人脸识别SDK版本问题! 下载的java版本的demo的SDK是arcs ...

  7. 微信公众号Java接入demo

    微信公众号Java接入demo 前不久买了一台服务,本来是用来当梯子用的,后来买了一个域名搭了一个博客网站,后来不怎么在上面写博客一直闲着,最近申请了一个微信公众号就想着弄点什么玩玩.周末没事就鼓捣了 ...

  8. Java类Demo中存在方法func1、func2、func3和func4,请问该方法中,哪些是不合法的定义?( )

    Java类Demo中存在方法func1.func2.func3和func4,请问该方法中,哪些是不合法的定义?( ) public class Demo{float func1(){int i=1;r ...

  9. java junit 运行_appium+java+junit demo运行

    对java熟悉一些,所以想用java把appium给做起来.今天用myeclipse给环境和Demo弄了一下,网上没有一篇全套资料的. 各块环境的搭建: 1.安装appium客户端,省略下载和安装步骤 ...

  10. java lucene demo,lucene自带的两个demo的运行测试方法

    最近准备做个自己的blog,考虑到对文文章内容的搜索,于是决定通过lucene对文章进行全文搜索.以下是我的学习笔记. 首先学习了中文java上的为自己的系统搞个全文搜索.车东的基于Java的全文索引 ...

最新文章

  1. 2002高教社杯---A车灯线光源的优化设计
  2. 波形捕捉:(7)“捕捉缓冲区”特效
  3. Lesson 13.3 梯度不平稳性与Glorot条件
  4. 在Github上搭建Jekyll博客和创建主题
  5. [register]-TCR(Translation Control Register)寄存器详解
  6. Android7.0 PowerManagerService(2) WakeLock的使用及流程
  7. DevOps和SRE有什么不同,每个意味着什么
  8. Windows:chm 文件打开出现“已取消到该网页的导航”的解决方案
  9. 阿里云万郁香:多样付费选择构筑成本最优的弹性体验
  10. BIEE配置多个实例(BIEE Multiple Instance)
  11. Spring+springMvc+Mybatis
  12. javascript:查找“跳号”号码
  13. Leetcode143. 重排链表 (golang描述)
  14. bzoj2298: [HAOI2011]problem a
  15. Python-OpenCV学习(十)用GrabCUt算法进行图片前景的提取
  16. hudson--插件管理
  17. Google搜索技巧终极收集
  18. C++程序设计试题及答案解析(一)
  19. 浅谈制药企业安全供电系统的设计与应用
  20. 网络协议:透彻解析HTTP协议

热门文章

  1. CTO:不要在代码中写 set/get 方法了,逮一次罚款...
  2. 抗住百万高并发的 6 个关键技术!
  3. 腾讯等技术大佬分享的高可用架构干货,全在这里了
  4. 昨晚我把900W+数据,从17s优化到300ms
  5. 大型WEB系统架构的那些组成
  6. Linux inode的正确理解
  7. 这20个常规Python语法你都搞明白了吗?
  8. UGUI更换图片的三种方法
  9. 027.3 反射技术 简单应用
  10. Vue笔记:使用 axios 中 this 指向问题