Server responds fine and also underlying http request objects are looking
fine. 

You can easily reproduce by the following:

1) mvn cargo:run (call this from the fit module directory to start server)
2) run the BasicITCase test and analyze response object

BasicITCase implements 2 test methods. Reading the service document is ok
and response looks healthy. The other method reads metadata document and
here the response object isn't initialized correctly.

After start of cargo server the service has the following base uri:
http://localhost:9080/olingo-server-tecsvc/odata.svc

Please note that metadata document contains a reference to another
metadata document which results in multiple requests on client side.

-- Stephan



On 03.07.14 16:01, "Francesco Chicchiriccò" <[email protected]> wrote:

>On 03/07/2014 15:56, Klevenz, Stephan wrote:
>> I'am having another issue with this unit test (BasicITCase class):
>>
>>    @Test
>>    public void readMetadata() {
>>    EdmMetadataRequest request =
>> odata.getRetrieveRequestFactory().getMetadataRequest(REF_SERVICE);
>>    assertNotNull(request);
>>    ODataRetrieveResponse<Edm> response = request.execute();
>>
>>    assertEquals(200, response.getStatusCode());
>>    ...
>> }
>>
>> The response object returns -1 for status code and it seems that the
>> object is just not correctly created. On the wire all data is fine.
>>Should
>> I open an issue?
>
>Could you please compare with the full response (including headers)
>returned by the static server?
>It's plenty of tests reading metadata documents - even the POJO
>generator does this, so it's hard to figure what kind of problem it
>might be, especially because the status code is just the one returned by
>the underlying HttpClient.
>
>Regards.
>
>> On 03.07.14 12:57, "Francesco Chicchiriccò" <[email protected]> wrote:
>>
>>> On 03/07/2014 12:51, Klevenz, Stephan wrote:
>>>> Hi,
>>>>
>>>> I have create an integration test to read the service document and
>>>> recognized that client sends an default accept header which is
>>>> "application/json;odata.metadata=full". The server currently supports
>>>> only minimal and doesn't accept the request.
>>>>
>>>>
>>>>
>>>>     @Test
>>>>
>>>>     public void readServiceDocument() {
>>>>
>>>>       ODataServiceDocumentRequest request =
>>>>
>>>>           
>>>> 
>>>>odata.getRetrieveRequestFactory().getServiceDocumentRequest(REF_SERVICE
>>>>);
>>>>
>>>>       assertNotNull(request);
>>>>
>>>>       ODataServiceDocument serviceDocument =
>>>>request.execute().getBody();
>>>>
>>>>       assertNotNull(serviceDocument);
>>>>
>>>>     }
>>>>
>>>>
>>>> Is it by purpose to add an accept header if client code doesn't set a
>>>> header explicitly? If this is the case then I must overwrite the
>>>>header
>>>> by this
>>>>
>>>>
>>>>       request.setAccept("application/json;odata.metadata=minimal");
>>>>
>>>> to get the request accepted.
>>> The client code will generate the header values from its configuration:
>>> doing
>>>
>>> request.setFormat(ODataFormat.JSON)
>>>
>>> should do the trick for this single request.
>>>
>>> Alternatively you can configure the default format via
>>>
>>> odata.getConfiguration().setDefaultPubFormat(ODataFormat.JSON)
>>>
>>> HTH
>>> Regards.
>
>-- 
>Francesco Chicchiriccò
>
>Tirasa - Open Source Excellence
>http://www.tirasa.net/
>
>Involved at The Apache Software Foundation:
>member, Syncope PMC chair, Cocoon PMC, Olingo PMC
>http://people.apache.org/~ilgrosso/
>

Reply via email to