Я столкнулся с проблемой при создании сущности в olingo apatche Odata, я использую odata для поддержки Mex
Я попытался использовать два способа: 1 - через патч 2 - ODataEntityCreateRequest
проблема в том, что при запуске приложения результат ответа создан - 201 или принять - 201 Но новые данные не добавлены в мою функцию (Контакты)
Этомой код
// Create a client
ODataClient client = ODataClientFactory.getClient();
// ===================================== Auth ================================================]
final String auth = Base64.encodeBase64String(String.format("%s:%s", "admin", "admin").getBytes(StandardCharsets.UTF_8));
client.getConfiguration().setHttpClientFactory(new DefaultHttpClientFactory() {
@Override
public DefaultHttpClient create(HttpMethod method, URI uri) {
final DefaultHttpClient client = super.create(method, uri);
client.addRequestInterceptor(new HttpRequestInterceptor() {
@Override
public void process(HttpRequest request, HttpContext context) throws HttpException, IOException {
request.addHeader("Authorization", "Basic " + auth);
}
});
return client;
}
});
// ------------------------------ Create New Entity ---------------------------------------------
final ContentType ACCEPT = ContentType.APPLICATION_OCTET_STREAM;
final ClientEntity NewSupplier = client.getObjectFactory().newEntity(new FullQualifiedName("MEXModel.Contact"));
NewSupplier.getProperties().add(client.getObjectFactory().newPrimitiveProperty("ContactID",
client.getObjectFactory().newPrimitiveValueBuilder().buildInt32(0)));
NewSupplier.getProperties().add(client.getObjectFactory().newPrimitiveProperty("FirstName",
client.getObjectFactory().newPrimitiveValueBuilder().buildString("Turki Bintaleb")));
NewSupplier.getProperties().add(client.getObjectFactory().newPrimitiveProperty("IsPrimaryContact",
client.getObjectFactory().newPrimitiveValueBuilder().buildBoolean(true)));
NewSupplier.getProperties().add(client.getObjectFactory().newPrimitiveProperty("IsTaxExempt",
client.getObjectFactory().newPrimitiveValueBuilder().buildBoolean(false)));
final ODataEntityCreateRequest<ClientEntity> createReq = client.getCUDRequestFactory().
getEntityCreateRequest(client.newURIBuilder("https://myservice/OData.svc").appendEntitySetSegment("Contacts").build(), NewSupplier);
createReq.setAccept(ACCEPT.toContentTypeString());
createReq.addCustomHeader("User-Agent", "Apache Olingo OData Client");
createReq.addCustomHeader(HttpHeader.ACCEPT_CHARSET, "UTF-8");
createReq.setFormat(ContentType.APPLICATION_ATOM_XML);
final ODataEntityCreateResponse<ClientEntity> createRes = createReq.execute();
System.out.println(createRes.getStatusMessage());
System.out.println("---------------------------------------------");