![](/img/trans.png)
[英]Olingo (OData 4): how set translation of EntitySet (Entity) names?
[英]Odata ClientEntity Error - Expected OData Entity, found EntitySet
我正在嘗試使用Olingo連接到Odata v4服務,該服務已通過羅斯文(Northwind)示例進行了測試,並且可以在瀏覽器中獲取產生的URI: 我總是得到以下
error:java.lang.IllegalArgumentException:org.apache.olingo.commons.api.serialization.ODataDeserializerException:
com.fasterxml.jackson.core.JsonParseException: Expected OData Entity, found
EntitySet.
碼
ODataEntityRequest<ClientEntity> reqEntity = client.getRetrieveRequestFactory().getEntityRequest(entityURI);
ODataRetrieveResponse<ClientEntity> entity = reqEntity.execute();
ClientEntity ce = (ClientEntity)entity.getBody();
在最后一行,我得到了錯誤。
ClientEntity ce = (ClientEntity)entity.getBody();
此錯誤意味着您正在查詢類似http://services.odata.org/V4/Northwind/Northwind.svc/Categories的集合URL。 對此的響應是EntitySet 。
但是,似乎您想要一個Entity 。 可以從類似http://services.odata.org/V4/Northwind/Northwind.svc/Categories(1)的URL獲得,其中(1)對應於您要獲取的Category的ID。
2種選擇:
ODataClientFactory.getClient().newURIBuilder("http://services.odata.org/V4/Northwind/Northwind.svc").appendEntitySetSegment("Categories").appendKeySegment(1).build()
並對此執行請求(我認為您甚至可以跳過強制轉換) getEntitySetRequest
,然后在execute()
方法的結果上使用getBody().getEntities()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.