有一种方法可以使用refletion为现有的java类生成thrift描述文件吗? Avro有这个功能,但我需要使用thrift,我在java中有很多现有的业务类,我需要在c ++和java中进行序列化。
答案 0 :(得分:1)
输入Swift:https://github.com/facebook/swift/
git clone https://github.com/facebook/swift
cd swift ; mvn package
特别是swift2thrift。将您的课程标记为:https://github.com/facebook/swift/
并运行:
MY_CLASSES=$HOME/ExampleService/target/ExampleService-1.0-SNAPSHOT.jar # just an example
cd ~/ExampleService ; mvn compile package && java -cp ~/swift/target/swift2thrift-generator-cli-0.15.0-SNAPSHOT-standalone.jar:$MY_CLASSEScom.facebook.swift.generator.swift2thrift.Main -package net.mycompany ExampleService -map ExampleService path/to/base.thrift -namespace py mycompany.thrift -namespace java net.mycompany.thrift -namespace cpp mycompany
为存在的Java类输出Thrift .idls。
另见:Can generate .thrift files from existing java/scala interfaces and data types?
答案 1 :(得分:0)
不是直接来自图书馆; thrift生成它自己的类和一些验证代码,以便两个“结束”(客户端/服务器)可以无错误地互操作。您应该编写代码来将业务对象映射到thrift对象。