从Java消费OData服务

问题描述:

我正在开发移动应用程序。对于数据库通信,我想使用我现有的方式:WCF数据服务(这是一种OData服务)。从Java消费OData服务

我不是经常用java编程,但我认为这不会是一个问题。失败。

我第一次尝试的是odata4j库。所有的时间我都得到了NullPointerExceptions(我尝试了一些非常小的东西,比如getEntities。大概花了一个小时才知道文档已经过时,ODataConsumer.create(..)不再存在,你需要使用ODataJerseyConsumer)。

然后我尝试使用我在网上找到的课程:RestClient,这是可用的here。我做了一些修改,最终它工作,但它不支持odata functionallity(像$ filter,$ oderby,...这样的查询),并且对于每个请求我需要一个新实例..所以我不满意它。

然后我试着用HttpClientJSONObject类自己实现。这是很多代码来做我喜欢的事情,而且非常不舒服。

所以问题是:是否有另一个图书馆,你可以推荐我错过了?你有任何提示如何实现我自己的“OData消费者图书馆”,或者你想让我在odata4j上投入更多时间吗?

+0

您正在为iPhone或Android开发吗? – AllieCat

+0

在这种情况下,为Android,但iOS会遵循。第一种方法是使用phoneGap,但性能非常糟糕,所以我再次在每个特定平台上实现我的应用程序。 –

就在一个月前,我发现自己处境非常相似。

我建议你回到OData4j进行Android开发。当您遇到问题或感到困惑时,发布到OData4j forum。 OData4j的创建者John Spurlock亲自回应了那里的所有帖子。当我遇到问题时(我创建了一个制片人,而不是一个消费者),他非常有耐心,并且在他的回复中迅速提示。

OData4j并没有像它应该那样多的教程。所以,请记下你所经历的步骤,然后分享你的专业知识!

对于使用OData进行iOS开发,最好有OData4ObjC。不幸的是,目前的版本大约一年前就放弃了,因此不支持iOS 6.我已经更新了代码和示例。它可以找到here

祝你好运!让我知道它是怎么回事!我正在考虑制作集成OData的Android应用程序。 :)

+0

感谢您的回答。目前我写了自己的小班,负责网络的工作。但基本上它只是我在问题中发布的RestClient类。我想我会在OData4j上投入更多的时间。非常糟糕的一点是'OData4ObjC'被放弃了。我真的很想知道这件事,因为我认为OData服务器是在应用程序中执行网络工作的非超级服务器。 ^^ –