Apache olingo 2.0 - 无法编写实体

时间:2015-12-29 17:58:19

标签: java olingo

我使用apache olingo 2.0作为客户端以访问ODATA服务。 我成功地获得了特定实体的元数据。我能够使用

阅读Feed
EntityProvider.readFeed(contentType,
        entityContainer.getEntitySet(entitySetName),
        content,
        EntityProviderReadProperties.init().build());

当我尝试编写条目

时会弹出问题
 ODataResponse response = EntityProvider.writeEntry(contentType, entitySet, data, properties);

这里     contentType = Application \ Json

entitySet = Entity set retrieved from EDM (metadata)

 data = data is map Map<String,object> with added property name and value.

使用此api创建条目时ODataResponse response = EntityProvider.writeEntry(contentType,entitySet,data,properties);

我在使用

打印内容时收到错误400 - 错误请求
Object entity = response.getEntity();
    if (entity instanceof InputStream) {
      byte[] buffer = streamToArray((InputStream) entity);
      // just for logging
      String content = new String(buffer);
      print(httpMethod + " request on uri '" + absolutUri + "' with content:\n  " + content + "\n");

  I do see that input object is not formed correctly and I am unable to understand why since it is handle by olingo jars.

我在位置

处遵循相同的客户端教程

https://olingo.apache.org/doc/odata2/tutorials/OlingoV2BasicClientSample.html

我修改了此客户端以调用成功因子ERP上的ODATA服务。我只是使用教程中的客户端代码并进行了修改,以调用成功因子ERP上的ODATA服务。

1 个答案:

答案 0 :(得分:0)

设置属性omitJsonWrapper,它应该可以工作。 用以下代替示例代码:

EntityProviderWriteProperties properties = EntityProviderWriteProperties.serviceRoot(rootUri).omitJsonWrapper(true).build();