在本文中,我们将给您介绍关于可以从现有的Java/scala接口和数据类型生成.thrift文件吗?的详细内容,并且为您解答scala可以调用java类吗的相关问题,此外,我们还将为您提供关于asp.
在本文中,我们将给您介绍关于可以从现有的Java / scala接口和数据类型生成.thrift文件吗?的详细内容,并且为您解答scala可以调用java类吗的相关问题,此外,我们还将为您提供关于asp.net-mvc – 我们可以从现有数据库的选定表中Scaffold DbContext吗?、asp.net-mvc – 我可以在MVC区域内部署javascript文件吗?、java – 从现有的CXF休息服务生成wadl、java 开发人员写好了 thrift 接口,C# 开发人员该如何调用 thrift 接口获取数据?的知识。
本文目录一览:- 可以从现有的Java / scala接口和数据类型生成.thrift文件吗?(scala可以调用java类吗)
- asp.net-mvc – 我们可以从现有数据库的选定表中Scaffold DbContext吗?
- asp.net-mvc – 我可以在MVC区域内部署javascript文件吗?
- java – 从现有的CXF休息服务生成wadl
- java 开发人员写好了 thrift 接口,C# 开发人员该如何调用 thrift 接口获取数据?
可以从现有的Java / scala接口和数据类型生成.thrift文件吗?(scala可以调用java类吗)
有没有简单的方法可以采用现有的Java / scala数据类型和API接口并生成相应的.thrift文件?使用Thrift生成 服务器
数据结构会过度侵入,因为它会导致以下后果:
- 我无法注释我的数据结构(例如,用于XML,JSON,休眠持久性等)
- 这种模式与其他想要拥有或需要修改我的源文件的序列化框架相冲突。
结果,它看起来像是节俭,迫使自己成为服务器的专有持久性格式,除非,也就是说,我围绕Thrift或其他处理这些数据结构的持久性格式创建了一个数据编组包装器(休眠,
Jackson,scala
BeanProperty,…)。但是,这违背了诸如节俭之类的自动化数据编组工具的目的,并直接导致易于出错的世界,即必须维护相同但分开的接口和数据结构(=浪费了有才华的工程师时间和精力)。
我对Thrift自动生成客户端代码完全满意。但是,我(强烈)觉得我需要自由地编辑服务器在API中处理的数据结构。
答案1
小编典典您可以使用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<ThriftEventHandler> eventList = Collections.emptyList(); ThriftServiceProcessor proc = new ThriftServiceProcessor(codecManager, eventList, svc); this.processors.put(name, proc); this.multiplex.registerProcessor(name, NiftyProcessorAdapters.processorToTProcessor(proc));}
此示例中的Multiplex实例变量是TMultiplexedProcessor
from 的实例libthrift.jar
。
然后只需在您的doPost()中执行以下操作:
@Overrideprotected 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
asp.net-mvc – 我们可以从现有数据库的选定表中Scaffold DbContext吗?
解决方法
asp.net-mvc – 我可以在MVC区域内部署javascript文件吗?
我尝试过以下方法:
> js文件的不同命名 – 不能解决问题
>检查它们是否存在于服务器上 – 它们确实存在
>直接从服务器上的IIS管理器中访问文件 – 它们无法打开并返回未找到
>直接从服务器上的IIS管理器中访问相同的文件,但是当文件位于脚本目录中时 – 它们在浏览器中打开
>使用路由检查器 – 当我尝试访问文件时,它不会打开路由调试,而只是说“404”
这有效:
<script src="@Url.Content("~/Scripts/jquery/_Roles.js")" type="text/javascript"></script>
这不起作用:
<script src="@Url.Content("~/Areas/Administration/Scripts/Roles/_Roles.js")" type="text/javascript"></script>
在Areas文件夹下阻止脚本的文件会有什么不同吗?
解决方法
我的建议是重新考虑你以这种方式组织内容的原因,并考虑将所有外部.js文件移动到Scripts文件夹.
java – 从现有的CXF休息服务生成wadl
解决方法
java 开发人员写好了 thrift 接口,C# 开发人员该如何调用 thrift 接口获取数据?
java 开发人员写好了 thrift 接口,C# 开发人员该如何在 VS 中调用 thrift 接口获取数据?
关于可以从现有的Java / scala接口和数据类型生成.thrift文件吗?和scala可以调用java类吗的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于asp.net-mvc – 我们可以从现有数据库的选定表中Scaffold DbContext吗?、asp.net-mvc – 我可以在MVC区域内部署javascript文件吗?、java – 从现有的CXF休息服务生成wadl、java 开发人员写好了 thrift 接口,C# 开发人员该如何调用 thrift 接口获取数据?等相关知识的信息别忘了在本站进行查找喔。
本文标签: