【问题标题】:Navigation links are not returned when using JSON for OData (using Apache Olingo for Java)将 JSON 用于 OData(使用 Apache Olingo for Java)时不返回导航链接
【发布时间】:2016-06-22 10:40:34
【问题描述】:

当使用下面的代码使用 XML 时,它可以完美地工作,即导航链接成功返回。但是,当我将格式更改为“json”或“application/json”时,links2 导航链接列表为空,这意味着rental.getNavigations() 返回一个空列表。

有人可以帮忙吗?我正在为 Java OData v4 使用 Apache Olingo。

谢谢

URI uri = client.newURIBuilder(serviceRoot)
                 .appendEntitySetSegment("Rentals")
                 .appendKeySegment(1).format("application/xml").build();

ODataRetrieveResponse<ODataEntity> response2 = client.getRetrieveRequestFactory().getEntityRequest(uri).execute();
ODataEntity rental = response2.getBody();

        List<ODataLink> links2 = rental.getNavigationLinks();
        for (ODataLink link : links2) {
            System.out.println(link.getRel());
            System.out.println(link.getName());
            URI linkUri = client.newURIBuilder(serviceRoot)
                      .appendNavigationSegment(link.getLink().toString()).format("atom").build();
            ODataRetrieveResponse<ODataEntity> responseCustomer
                    = client.getRetrieveRequestFactory().getEntityRequest(linkUri).execute();
            ODataEntity cust = responseCustomer.getBody();
            if(link.getName().equals("Stock"))
                System.out.println(cust.getProperty("Status").getValue().toString()); 
            else System.out.println(cust.getProperty("Name").getValue().toString()); 
       } 

【问题讨论】:

  • 嗨@user3423878。如果我在下面的回答解决了您的问题,请考虑通过单击复选标记接受它。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
  • 添加 odata.metadata=full 格式选项时,OData 服务会输出一条异常消息,指出该服务不接受 metadata=full 格式。有任何想法吗?谢谢
  • 确切的错误信息是什么?

标签: java json apache odata olingo


【解决方案1】:

odata.metadata=full 格式参数是使 odata.navigationLink 属性出现在 JSON 响应中所必需的。在构建client 时将odata.metadata=full 添加到格式选项。完整格式应为application/json;odata.metadata=full。如果您可以通过 client 对象访问请求标头,则可以考虑改为设置 Accept 标头。

【讨论】:

    猜你喜欢
    • 2016-11-14
    • 2022-01-02
    • 2019-11-14
    • 2016-01-19
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 2017-01-12
    • 2014-12-10
    相关资源
    最近更新 更多