2017-01-23 1 views
0

중 하나로, OData의 공식 튜토리얼 엔티티 만드는 방법을 보여줍니다 : http://www.odata.org/getting-started/basic-tutorial/#createApache Olingo에서 엔티티를 만드는 방법은 무엇입니까?

내가 Olingo와 하나로, OData V4 서비스의 데이터를 조작에 Templier의 튜토리얼을 사용하여 아파치 Olingo 내에서이 문제를 재현하려면을 (https://templth.wordpress.com/2014/12/05/manipulating-data-of-odata-v4-services-with-olingo/)

불행하게도,이 튜토리얼은 오래된 성공적인 POST 요청을 생성 할 수 없습니다. 내 코드를 실행하려고 시도하면 HTTP/1.1 500 Internal Server Error이됩니다.

이 내 코드는 지금까지입니다 : 내가 잘못 뭐하는 거지

String serviceRoot = "http://services.odata.org/V4/TripPinService/";  
String namespace = "Microsoft.OData.SampleService.Models.TripPin"; 

URI personURI = client.newURIBuilder(serviceRoot) 
      .appendEntitySetSegment("People").build();  
FullQualifiedName personFqn = new FullQualifiedName(namespace, "Person"); 

ClientEntity personEntity = client.getObjectFactory().newEntity(personFqn);  
personEntity.getProperties().add(
      client.getObjectFactory().newPrimitiveProperty(
        "username", 
        client.getObjectFactory().newPrimitiveValueBuilder() 
          .buildString("MaryGilbert"))); 
//same procedure for "FirstName" and "LastName", which are obligatory fields 

ODataEntityCreateRequest<ClientEntity> req = client.getCUDRequestFactory().getEntityCreateRequest(personURI,personEntity); 
ODataEntityCreateResponse<ClientEntity> res = req.execute(); 

? 문제를 식별/디버깅하려면 어떻게해야합니까?

대단히 감사합니다.

답변

1

속성 이름은 대소 문자를 구별하므로 사용자 이름 대신 UserName을 사용해보십시오. 또한 문제를 디버깅하기 위해 피들러를 사용할 수도 있습니다. 사용 사례의 오류입니다.

HTTP/1.1 500 Internal Server Error - {"error":{"code":"InternalServerError","message":"The property 'UserName[Nullable=False]' of type 'Edm.String' has a null value 
+0

오, 이런. 실제로 문제가되었습니다. 'username'을'UserName'으로 조정 한 후에'Status Code 201'을 받았습니다. 고맙습니다. Fiddler와의 팁에 대해 감사드립니다. 이 도구는 매우 흥미 롭습니다. –

관련 문제