【问题标题】:gwt-syncproxy - RPC between WebProject and Android Appgwt-syncproxy - WebProject 和 Android 应用程序之间的 RPC
【发布时间】:2013-12-02 13:48:31
【问题描述】:

我试图让我的 Android 应用程序与我的 GWT WebProject (GWT 2.5.1) 进行通信...通常我从代码的角度确定了它,但我一直遇到代码导入问题...

最初,当我尝试使用 SyncProxy 从 android 项目实例化它们时,我会在 RPCService 和 RPCServiceAsync 类上得到 NoClassDefFoundError 并且它们是在 Web 项目中定义的......即使移动项目依赖于构建中的 Web 项目-path 它没有将 Web 项目代码导出到移动 apk 中...我认为这可能是因为 GWT 编译实际上将事物转换为 javascript 而不是构建 jar 但不确定...

我继续将 RPCService 和 RPCServiceAsync 文件移动到 andoird 项目,但将 RPCServiceImpl 保留在 web 项目中并切换了依赖项(即 web 项目依赖于 android )......我现在不再得到 NoClassDefFoundError 而是syncproxy 无法在类路径中找到策略文件...这是因为策略文件位于 Web 项目的 WAR 目录中...

在我看来,我错误地拆分了我的项目,我想知道最好的方法是什么?我怎样才能让 GWT 应用程序导出 rpc 策略文件和/或其 java 类?

谢谢

【问题讨论】:

    标签: gwt rpc gwt-syncproxy


    【解决方案1】:

    首先,您的初始设置是正确的。最好在 Web 应用程序中定义服务接口,并让您的 Android 应用程序从那里提取。我不确定您使用的是什么 IDE,但在 Eclipse 中,您要在 Build Path 对话框中使用的功能称为 Link Source。使用它,您可以将构建路径直接指向 Web 应用程序的服务接口,以使它们将与(而不是针对)Android 应用程序一起编译。

    作为简要参考,请查看 SyncProxy 项目中 Android wiki 的 Setup in Eclipse 部分:https://code.google.com/p/gwt-syncproxy/wiki/Android。另请查看常见问题 wiki。 https://code.google.com/p/gwt-syncproxy/wiki/CommonIssues

    需要注意的是,它的最终运行方式并不是网络应用将代码导出到 Android 项目。实际上,Android 项目会将代码从 GWT 应用程序源路径导入到它自己的源层次结构中。

    关于您收到的第二个错误,即“丢失”的策略文件,请尝试在您的项目上运行 GWT 编译,并确保您的 appengine-web.xml 文件(如果使用 GAE 作为您的服务后端)已修改为在 wiki 中定义(我刚刚做了一些更新)。

    最后,您可能会遇到另一个错误。由于您使用的是 GWT 2.5.1,如果您运行的不是最新版本的 SPALibrary,则可能会遇到序列化问题。我现在正在查看有关测试的反馈,并且应该可以在几个小时内在网站上下载该文件。如果针对 GWT 2.5.1 ServiceImpl 运行,请确保使用 0.4.1 Android 库。

    【讨论】:

    • 作为关于“找不到策略文件”错误的更新点,从 0.5 版开始更新 SyncProxy 以解决许多特定问题。最新版本有更多算法可以根据需要查找策略文件。
    【解决方案2】:

    我也被这个错过了,但现在经过两天的调试。我比较清楚了。

    SyncProxy 需要您拥有 GWT 项目(服务器端)的全部代码。 为此,您只需创建一个额外的类,将 SyncProxy 触发到其中。在这个类中,你应该导入所有需要的类和函数,这就是你需要服务器代码的原因。

    并且必须将服务器端生成的“*.gwt.rpc”文件放到本项目的类路径中。

    我认为这足以让您启动 SyncProxy。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-21
      • 2012-09-14
      • 1970-01-01
      • 2023-03-18
      • 2012-03-15
      • 1970-01-01
      相关资源
      最近更新 更多