如何使用libcurl从c或c ++客户端调用gwt rpc servlet?

时间:2011-07-26 19:22:53

标签: java c++ gwt rpc libcurl

我有一个带有GWT客户端的谷歌应用引擎应用程序。大多数服务器功能可以像往常一样通过普通的GWT RPC调用访问。我正在用C ++编写一个数据挖掘应用程序,它需要与appengine应用程序通信。问题是,实现了太多的gwt servlet,因此重写服务器代码是不可能的。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

如果您在客户端上使用Java,则可以使用GWT SyncProxy。虽然这个库的主要用途是测试远程gwt rpc服务,但它可以有效地用于任何目的。当您使用C ++开发客户端时,这可能不是您的选择。

如果您控制GWT应用程序(即您可以重新编译它),您可以可能执行以下操作:

  1. 将RPC相关功能导出到javascript中。这使得GWT代码的特定功能可用作主机页面内的普通Javascript函数。有关教程,请参阅this文章

  2. 使用类似embedded browser engine的webkit并在其中加载GWT模块脚本。

  3. 将导出的GWT函数作为普通的java函数调用。

  4. 但它可能会被证明是太多的工作,所以你可能最好重构servlet以暴露另外一个基于JSON / XML的接口。

答案 1 :(得分:0)

解决了,最好的方法就像塔希尔所说的那样。尝试直接从C ++连接到GWT rpcs只是太多的工作。最简单的方法是在服务器端编写瘦包装器作为普通的servlet,并使用来自C ++的http和curl。关于JSON或XML的对象序列化仍然存在一个问题。我选择在我想要序列化的对象字段上编写自定义注释,然后在运行时读取这些注释以便序列化它们。