Please help, Olingo Insert Entity Issue (400) Bad Request
Posted: Sun May 17, 2015 11:32 pm
Hi, All
Please help me on this this inserting operation, always get (400) Bad Request from line "req.execute()". Following is the original code and output.
public class OlingoCUD {
public static void main(String[] args) throws Exception {
String SERVICE_ROOT = "http://server:8001/api/v1/";
ODataClient client = ODataClientFactory.getClient();
String authStr = "username:pwd:NamespaceID";
String authEncoded = new String(Base64.encodeBase64(authStr.getBytes()));
ClientEntity newprocess = client.getObjectFactory().newEntity(new FullQualifiedName("ibm.tm1.api.v1.Process"));
newprocess.getProperties().add(client.getObjectFactory().newPrimitiveProperty("Name",client.getObjectFactory().newPrimitiveValueBuilder().buildString("MyProcess")));
URI ProcessURI = client.newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("Processes").build();
ODataEntityCreateRequest<ClientEntity> req = client.getCUDRequestFactory().getEntityCreateRequest(ProcessURI, newprocess);
req.addCustomHeader("Authorization","CAMNamespace " + authEncoded);
req.setFormat(ODataFormat.APPLICATION_JSON);
ODataEntityCreateResponse<ClientEntity> res = req.execute();
System.out.println(res.getHeaderNames());
if (res.getStatusCode()==201) {
System.out.println("Successfully Created!");
}
}
}
Debug OutPut:
main] WARN org.apache.olingo.client.core.communication.header.ODataErrorResponseChecker - Error deserializing error response
java.lang.NullPointerException
at org.apache.olingo.commons.core.serialization.JsonODataErrorDeserializer.doDeserialize(JsonODataErrorDeserializer.java:46)
at org.apache.olingo.commons.core.serialization.JsonDeserializer.toError(JsonDeserializer.java:416)
at org.apache.olingo.client.core.serialization.ClientODataDeserializerImpl.toError(ClientODataDeserializerImpl.java:90)
at org.apache.olingo.client.core.serialization.ODataReaderImpl.readError(ODataReaderImpl.java:85)
at org.apache.olingo.client.core.communication.header.ODataErrorResponseChecker.checkResponse(ODataErrorResponseChecker.java:58)
at org.apache.olingo.client.core.communication.request.AbstractRequest.checkResponse(AbstractRequest.java:54)
at org.apache.olingo.client.core.communication.request.AbstractODataRequest.doExecute(AbstractODataRequest.java:316)
at org.apache.olingo.client.core.communication.request.cud.ODataEntityCreateRequestImpl.execute(ODataEntityCreateRequestImpl.java:88)
at org.apache.olingo.client.core.communication.request.cud.ODataEntityCreateRequestImpl.execute(ODataEntityCreateRequestImpl.java:47)
at Operation.OlingoCUD.main(OlingoCUD.java:62)
Exception in thread "main" org.apache.olingo.client.api.communication.ODataClientErrorException: (400) Bad Request [HTTP/1.1 400 Bad Request]
at org.apache.olingo.client.core.communication.header.ODataErrorResponseChecker.checkResponse(ODataErrorResponseChecker.java:74)
at org.apache.olingo.client.core.communication.request.AbstractRequest.checkResponse(AbstractRequest.java:54)
at org.apache.olingo.client.core.communication.request.AbstractODataRequest.doExecute(AbstractODataRequest.java:316)
at org.apache.olingo.client.core.communication.request.cud.ODataEntityCreateRequestImpl.execute(ODataEntityCreateRequestImpl.java:88)
at org.apache.olingo.client.core.communication.request.cud.ODataEntityCreateRequestImpl.execute(ODataEntityCreateRequestImpl.java:47)
at Operation.OlingoCUD.main(OlingoCUD.java:62)
Please help me on this this inserting operation, always get (400) Bad Request from line "req.execute()". Following is the original code and output.
public class OlingoCUD {
public static void main(String[] args) throws Exception {
String SERVICE_ROOT = "http://server:8001/api/v1/";
ODataClient client = ODataClientFactory.getClient();
String authStr = "username:pwd:NamespaceID";
String authEncoded = new String(Base64.encodeBase64(authStr.getBytes()));
ClientEntity newprocess = client.getObjectFactory().newEntity(new FullQualifiedName("ibm.tm1.api.v1.Process"));
newprocess.getProperties().add(client.getObjectFactory().newPrimitiveProperty("Name",client.getObjectFactory().newPrimitiveValueBuilder().buildString("MyProcess")));
URI ProcessURI = client.newURIBuilder(SERVICE_ROOT).appendEntitySetSegment("Processes").build();
ODataEntityCreateRequest<ClientEntity> req = client.getCUDRequestFactory().getEntityCreateRequest(ProcessURI, newprocess);
req.addCustomHeader("Authorization","CAMNamespace " + authEncoded);
req.setFormat(ODataFormat.APPLICATION_JSON);
ODataEntityCreateResponse<ClientEntity> res = req.execute();
System.out.println(res.getHeaderNames());
if (res.getStatusCode()==201) {
System.out.println("Successfully Created!");
}
}
}
Debug OutPut:
main] WARN org.apache.olingo.client.core.communication.header.ODataErrorResponseChecker - Error deserializing error response
java.lang.NullPointerException
at org.apache.olingo.commons.core.serialization.JsonODataErrorDeserializer.doDeserialize(JsonODataErrorDeserializer.java:46)
at org.apache.olingo.commons.core.serialization.JsonDeserializer.toError(JsonDeserializer.java:416)
at org.apache.olingo.client.core.serialization.ClientODataDeserializerImpl.toError(ClientODataDeserializerImpl.java:90)
at org.apache.olingo.client.core.serialization.ODataReaderImpl.readError(ODataReaderImpl.java:85)
at org.apache.olingo.client.core.communication.header.ODataErrorResponseChecker.checkResponse(ODataErrorResponseChecker.java:58)
at org.apache.olingo.client.core.communication.request.AbstractRequest.checkResponse(AbstractRequest.java:54)
at org.apache.olingo.client.core.communication.request.AbstractODataRequest.doExecute(AbstractODataRequest.java:316)
at org.apache.olingo.client.core.communication.request.cud.ODataEntityCreateRequestImpl.execute(ODataEntityCreateRequestImpl.java:88)
at org.apache.olingo.client.core.communication.request.cud.ODataEntityCreateRequestImpl.execute(ODataEntityCreateRequestImpl.java:47)
at Operation.OlingoCUD.main(OlingoCUD.java:62)
Exception in thread "main" org.apache.olingo.client.api.communication.ODataClientErrorException: (400) Bad Request [HTTP/1.1 400 Bad Request]
at org.apache.olingo.client.core.communication.header.ODataErrorResponseChecker.checkResponse(ODataErrorResponseChecker.java:74)
at org.apache.olingo.client.core.communication.request.AbstractRequest.checkResponse(AbstractRequest.java:54)
at org.apache.olingo.client.core.communication.request.AbstractODataRequest.doExecute(AbstractODataRequest.java:316)
at org.apache.olingo.client.core.communication.request.cud.ODataEntityCreateRequestImpl.execute(ODataEntityCreateRequestImpl.java:88)
at org.apache.olingo.client.core.communication.request.cud.ODataEntityCreateRequestImpl.execute(ODataEntityCreateRequestImpl.java:47)
at Operation.OlingoCUD.main(OlingoCUD.java:62)