![](/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.