eclipse thrift java,可以从现有的Java / scala接口和数据类型生成.thrift文件吗?

小编典典

您可以使用Swift。

使长话短说;

注释您的类和接口(用Thrift的话来说就是结构和服务)。然后,您可以运行Swift的客户端/服务器代码,也可以使用swift2thrift生成器生成等效的IDL,并使用Thrift编译器生成客户端(后者是我建议的描述对象)。

一旦完成创建可在TServlet中与常规TProtocol /

TTransport对象一起使用的TProcessor的操作,请在servlet的init()中执行以下操作:

protected void addProcessor(String name, Object svc) {

ThriftCodecManager codecManager = new ThriftCodecManager(

new CompilerThriftCodecFactory(false)

);

List eventList = Collections.emptyList();

ThriftServiceProcessor proc = new ThriftServiceProcessor(codecManager, eventList, svc);

this.processors.put(name, proc);

this.multiplex.registerProcessor(name, NiftyProcessorAdapters.processorToTProcessor(proc));

}

此示例中的Multiplex实例变量是TMultiplexedProcessorfrom 的实例libthrift.jar。

然后只需在您的doPost()中执行以下操作:

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

getServletContext().log("entering doPost()");

TTransport inTransport = null;

TTransport outTransport = null;

try {

InputStream in = request.getInputStream();

OutputStream out = response.getOutputStream();

TTransport transport = new TIOStreamTransport(in, out);

inTransport = transport;

outTransport = transport;

TProtocol inProtocol = getInProtocolFactory().getProtocol(inTransport);

TProtocol outProtocol = getOutProtocolFactory().getProtocol(outTransport);

if (multiplex.process(inProtocol, outProtocol)) {

out.flush();

} else {

throw new ServletException("multiplex.process() returned false");

}

} catch (TException te) {

throw new ServletException(te);

} finally {

if (inTransport != null) {

inTransport.close();

}

if (outTransport != null) {

outTransport.close();

}

}

}

仅供参考-TJSONProtocol不适用于0.14之前的Swift版本,因此如果您需要使用TJSONProtocol,则需要从源代码进行构建。

另外… Swift强制标记您的结构final…

JPA规范说实体不能final…似乎无论如何都可以与Eclipselink一起使用,但是YMMV

2020-11-16

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值