GWT到C ++通信的选项有哪些?

时间:2010-04-22 19:55:03

标签: c++ ajax web-services gwt

我正在寻找GWT到C ++通信解决方案。 目前我正在试图弄清楚如何在GWT中运行WSDL,但实际上,在WSDL中完全没有经验,而在GWT中只有很少的经验。

所以,我的问题是关于在GWT中使用WSDL的可行性(以及如何?),如果存在,其他方法也会很有趣。

我试图避免在服务器上编写Java代码并在客户端上编写JavaScript代码。

4 个答案:

答案 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的RequestBuilderJavaScript Overlay Types在客户端中使用它。

您也可以使用基于XML的API,但由于叠加类型,JSON最简单。

答案 3 :(得分:0)

我发现Thrift几乎是唯一的选择,包括基于代码生成的数据绑定解决方案,支持RPC,适用于C ++端(原始Apache Thrift编译器)和GWT端(gwt-rpc-plus解决方案)。

这是巧合,但Thrift实际上是一个很好的JSON数据绑定解决方案。

我在Thrift中看到的唯一问题(而且相当不便) - 它不支持结构多态,这对于JavaScript来说是好的(Thrift支持它),但对于像C ++和Java这样的真实的面向对象语言则不好。 / p>