我正在寻找GWT到C ++通信解决方案。 目前我正在试图弄清楚如何在GWT中运行WSDL,但实际上,在WSDL中完全没有经验,而在GWT中只有很少的经验。
所以,我的问题是关于在GWT中使用WSDL的可行性(以及如何?),如果存在,其他方法也会很有趣。
我试图避免在服务器上编写Java代码并在客户端上编写JavaScript代码。
答案 0 :(得分:1)
GWT方面:
RequestBuilder和com.google.gwt.json.client.JSONObject可以快速而且真的不是那么脏的编组api。
覆盖类型要求您在编译时了解数据配置。使用JSONObject(以及它的JSONValue),您可以将其视为一个稍微笨拙的键/值映射。
将RequestBuilder设置为POST并将有效负载序列化为JSONObject并调用toJSON();
C ++方.. 找到一个最喜欢的JSON库(我可以从http://www.json.org/的精选中选择
)(你必须建立一个方法调度方案,但如果你的应用很简单,只需使用一些简单的if())
使用mime-type text / javascript; charset = UTF-8 发回回复。
回到您的GWT代码中,您可以使用以下内容回读结果:
if (Response.SC_OK == response.getStatusCode()) {
try {
String txtResponse = response.getText();
if (txtResponse != null && txtResponse.length() > 0) {
JSONObject result = (JSONObject)JSONParser.parse(testResponse);
//Do something useful...
}
} catch (......)
现在你可以毫无魔法地来回交谈。 (天哪知道,没有WDSL !!!)
答案 1 :(得分:1)
节俭可能是最适合您的解决方案。 GWT的特定portage位于:http://code.google.com/p/thrift-gwt/。
答案 2 :(得分:0)
您可以在服务器上公开基于JSON的API,并使用GWT的RequestBuilder
和JavaScript Overlay Types在客户端中使用它。
您也可以使用基于XML的API,但由于叠加类型,JSON最简单。
答案 3 :(得分:0)
我发现Thrift几乎是唯一的选择,包括基于代码生成的数据绑定解决方案,支持RPC,适用于C ++端(原始Apache Thrift编译器)和GWT端(gwt-rpc-plus解决方案)。
这是巧合,但Thrift实际上是一个很好的JSON数据绑定解决方案。
我在Thrift中看到的唯一问题(而且相当不便) - 它不支持结构多态,这对于JavaScript来说是好的(Thrift支持它),但对于像C ++和Java这样的真实的面向对象语言则不好。 / p>