2013-07-16 185 views
1

我正在開發移動應用程序。對於數據庫通信,我想使用我現有的方式: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,但性能非常糟糕,所以我再次在每個特定平臺上實現我的應用程序。 –

回答

1

就在一個月前,我發現自己處境非常相似。

我建議你回到OData4j進行Android開發。當您遇到問題或感到困惑時,發佈到OData4j forum。 OData4j的創建者John Spurlock親自迴應了那裏的所有帖子。當我遇到問題時(我創建了一個製片人,而不是一個消費者),他非常有耐心,並且在他的回覆中迅速提示。

OData4j並沒有像它應該那樣多的教程。所以,請記下你所經歷的步驟,然後分享你的專業知識!

對於使用OData進行iOS開發,最好有OData4ObjC。不幸的是,目前的版本大約一年前就放棄了,因此不支持iOS 6.我已經更新了代碼和示例。它可以找到here

祝你好運!讓我知道它是怎麼回事!我正在考慮製作集成OData的Android應用程序。 :)

+0

感謝您的回答。目前我寫了自己的小班,負責網絡的工作。但基本上它只是我在問題中發佈的RestClient類。我想我會在OData4j上投入更多的時間。非常糟糕的一點是'OData4ObjC'被放棄了。我真的很想知道這件事,因爲我認爲OData服務器是在應用程序中執行網絡工作的非超級服務器。 ^^ –