thrift java first demo
参考文档: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相关推荐
- Apache Thrift - java开发详解
2019独角兽企业重金招聘Python工程师标准>>> Apache Thrift - java开发详解 博客分类: java 架构 中间件 1.添加依赖 jar <depen ...
- Java类Demo中存在_Java中的数据类型转换
先来看一个题: Java类Demo中存在方法func0.func1.func2.func3和func4,请问该方法中,哪些是不合法的定义?( ) public class Demo{ float fu ...
- Thrift Java Servers Compared
2019独角兽企业重金招聘Python工程师标准>>> Thrift Java Servers Compared This article talks only about Java ...
- 海康威视(HIKVISION) JAVA SDK Demo成功运行
海康威视(HIKVISION) JAVA SDK Demo成功运行 引子 下载 说明 代码编译 添加文件 问题 排查 总结 引子 调海康的JAVA SDK花费时间较长,所以记录下,为其他小伙伴填填坑, ...
- java用虹软人脸识别SDK实现人脸识别,运行ArcSoft的Java版本Demo出错,未检出人脸
java.lang.UnsatisfiedLinkError: Can't load library: d:\face_libs\libarcsoft_ java用虹软人脸识别SDK实现人脸识别 网上 ...
- java用虹软人脸识别SDK实现人脸识别,运行ArcSoft的Java版本Demo出错,未检出人脸(已解决)
java用虹软人脸识别SDK实现人脸识别,运行ArcSoft的Java版本Demo出错,未检出人脸问题已解决!!! 原因: 虹软人脸识别SDK版本问题! 下载的java版本的demo的SDK是arcs ...
- 微信公众号Java接入demo
微信公众号Java接入demo 前不久买了一台服务,本来是用来当梯子用的,后来买了一个域名搭了一个博客网站,后来不怎么在上面写博客一直闲着,最近申请了一个微信公众号就想着弄点什么玩玩.周末没事就鼓捣了 ...
- Java类Demo中存在方法func1、func2、func3和func4,请问该方法中,哪些是不合法的定义?( )
Java类Demo中存在方法func1.func2.func3和func4,请问该方法中,哪些是不合法的定义?( ) public class Demo{float func1(){int i=1;r ...
- java junit 运行_appium+java+junit demo运行
对java熟悉一些,所以想用java把appium给做起来.今天用myeclipse给环境和Demo弄了一下,网上没有一篇全套资料的. 各块环境的搭建: 1.安装appium客户端,省略下载和安装步骤 ...
- java lucene demo,lucene自带的两个demo的运行测试方法
最近准备做个自己的blog,考虑到对文文章内容的搜索,于是决定通过lucene对文章进行全文搜索.以下是我的学习笔记. 首先学习了中文java上的为自己的系统搞个全文搜索.车东的基于Java的全文索引 ...
最新文章
- 2002高教社杯---A车灯线光源的优化设计
- 波形捕捉:(7)“捕捉缓冲区”特效
- Lesson 13.3 梯度不平稳性与Glorot条件
- 在Github上搭建Jekyll博客和创建主题
- [register]-TCR(Translation Control Register)寄存器详解
- Android7.0 PowerManagerService(2) WakeLock的使用及流程
- DevOps和SRE有什么不同,每个意味着什么
- Windows:chm 文件打开出现“已取消到该网页的导航”的解决方案
- 阿里云万郁香:多样付费选择构筑成本最优的弹性体验
- BIEE配置多个实例(BIEE Multiple Instance)
- Spring+springMvc+Mybatis
- javascript:查找“跳号”号码
- Leetcode143. 重排链表 (golang描述)
- bzoj2298: [HAOI2011]problem a
- Python-OpenCV学习(十)用GrabCUt算法进行图片前景的提取
- hudson--插件管理
- Google搜索技巧终极收集
- C++程序设计试题及答案解析(一)
- 浅谈制药企业安全供电系统的设计与应用
- 网络协议:透彻解析HTTP协议