2015-12-29 77 views
0

我使用apache olingo 2.0作爲客戶端以訪問ODATA服務。 我成功地能夠獲取特定實體的元數據。我能夠使用Apache olingo 2.0 - 無法寫入實體

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

問題時彈出我想寫進入

ODataResponse response = EntityProvider.writeEntry(contentType, entitySet, data, properties); 

這裏閱讀飼料 的contentType =申請\ Json的

entitySet = Entity set retrieved from EDM (metadata) 

data = data is map Map<String,object> with added property name and value. 
使用創建條目時

這個api的ODataResponse響應= 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服務。

回答

0

設置屬性omitJsonWrapper,它應該工作。 下面替換示例代碼:

EntityProviderWriteProperties屬性= EntityProviderWriteProperties.serviceRoot(rootUri).omitJsonWrapper(真).build();