构建与Android客户端共享接口的java服务器

构建与Android客户端共享接口的java服务器,java,android,remoteobject,Java,Android,Remoteobject,2个月前,我开始开发一个android应用程序,它需要调用远程方法并从服务器接收复杂对象(其中包含自定义feild的自定义对象)。 我的朋友和我分开工作,所以他在安卓客户端工作,我在服务器上工作。 在开始之前,我们构建了基本接口,这些接口提供了客户端从服务器需要的功能,因此我的朋友可以轻松地编程应用程序(使用假类作为接口的实现),在我完成服务器端接口的实现后,他将建立连接并从服务器而不是从伪类调用函数 现在的问题是,我们找不到将这些接口从服务器传递到客户端的方法。 我们尝试使用java RMI,

2个月前,我开始开发一个android应用程序,它需要调用远程方法并从服务器接收复杂对象(其中包含自定义feild的自定义对象)。 我的朋友和我分开工作,所以他在安卓客户端工作,我在服务器上工作。 在开始之前,我们构建了基本接口,这些接口提供了客户端从服务器需要的功能,因此我的朋友可以轻松地编程应用程序(使用假类作为接口的实现),在我完成服务器端接口的实现后,他将建立连接并从服务器而不是从伪类调用函数

现在的问题是,我们找不到将这些接口从服务器传递到客户端的方法。 我们尝试使用java RMI,但失败了,因为android不支持java RMI, 然后我们尝试使用JAX-WS(与Tomcat7配合使用),但也失败了,因为JAXB无法处理接口。()

我和我的朋友感到很失落。。我们不知道如何在服务器和android客户端之间传递这些接口。 我们想做的可能吗?如果没有,, 我们还可以使用哪些其他选项来调用远程方法并从服务器接收复杂对象


谢谢

您可以在服务器上公开Web服务,这样客户机可以在需要时随时与服务器交互,这可能是最快的解决方案


或者您可以编写一种servlet编程,从客户机获取json请求,处理它并将json响应发送回客户机。如果应用程序是数据密集型的,那么JSON会给您带来很大的帮助。现在还不确定这是否为时已晚(经过2个月的开发),但是有一些框架可以让RPC更容易(注意链接两端)。我所知道的两个是ApacheThrift(绝对可以与Android一起使用——有一些应用程序使用它)或ApacheAtch(可能)

阿帕奇节俭:

Apache蚀刻:

关于Evernote节俭选择的博客:

如果您的应用程序仅限于服务器上的Java和Android(没有其他客户端,如IOS)之间的通信,那么与基于IDL的解决方案相比,使用RPC路径更简单。此解决方案同时提供服务器和Android客户端组件。它在客户端和服务器上都非常容易实现。一个限制是必须对字节数组进行编码,因为JSON传输不支持二进制。

我感谢您的帮助!我已经做了一个Web服务,但是我对jaxb有一个问题-你可以在这里看到这个问题:非常感谢!看起来很有趣。我试着在谷歌上搜索,但我真的不明白-你能告诉我apache thrift和apache etch之间的区别吗?它们的功能非常相似。在框架的IDL中定义接口,然后运行生成器,生成处理通信的代码,然后将其链接到代码。这两方面的文件都相当稀少。还有另一种具有双许可证(GPL/Commercial)的替代方案,它具有更好的文档,称为ICE。这篇文章可能对节俭有用: