Author: buildbot
Date: Wed Mar 2 05:00:05 2016
New Revision: 981616
Log:
Staging update by buildbot for olingo
Modified:
websites/staging/olingo/trunk/content/ (props changed)
websites/staging/olingo/trunk/content/doc/odata4/tutorials/streaming/tutorial_streaming.html
Propchange: websites/staging/olingo/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Wed Mar 2 05:00:05 2016
@@ -1 +1 @@
-1733138
+1733216
Modified:
websites/staging/olingo/trunk/content/doc/odata4/tutorials/streaming/tutorial_streaming.html
==============================================================================
---
websites/staging/olingo/trunk/content/doc/odata4/tutorials/streaming/tutorial_streaming.html
(original)
+++
websites/staging/olingo/trunk/content/doc/odata4/tutorials/streaming/tutorial_streaming.html
Wed Mar 2 05:00:05 2016
@@ -313,7 +313,7 @@ Based on this the <em>OData-v4.0 Part1 P
<p>In the case that the service encounters an error after sending a success
status to the client, the service MUST generate an error within the payload,
which may leave the response malformed. Clients MUST treat the entire response
as being in error. This specification does not prescribe a particular format
for generating errors within a payload.</p>
</blockquote>
<p>For <em>exception/error handling</em> in Olingo exists the
<code>ODataContentWriteErrorCallback</code> interface which must be implemented
and then can be set as an option at the
<code>EntityCollectionSerializerOptions</code> with the
<code>writeContentErrorCallback(...)</code> method.</p>
-<p>If during processing (<em>write</em>) of the <code>ODataContent</code>
object (normally serialization into an according <code>OutputStream</code>,
like the <code>ServletOutputStream</code> in a JEE servlet environment) an
exception occurs the <code>ODataContentWriteErrorCallback</code>
<code>handleError</code> method is called.
+<p>If during processing (<em>write</em>) of the <code>ODataContent</code>
object (normally serialization into an according <code>OutputStream</code>,
like the <code>javax.servlet.ServletOutputStream</code> in a JEE servlet
environment) an exception occurs the
<code>ODataContentWriteErrorCallback</code> <code>handleError</code> method is
called.
This method get as parameter the <code>ODataContentWriteErrorContext</code>
which contains at least the thrown and to be handled <code>Exception</code> and
the <code>WritableByteChannel</code> in which the payload of the response was
written before the error occurred.
Based on the requirements of the OData specification that <em>the service MUST
generate an error within the payload, which may leave the response
malformed</em> the <code>WritableByteChannel</code> is still open and the
service developer can write additional data to ensure that the response payload
is malformed.</p>
<p>A basic <code>ODataContentWriteErrorCallback</code> implementation could
look like this code snippet:</p>
@@ -342,7 +342,31 @@ Based on the requirements of the OData s
<h1 id="run-sample-service">Run sample service<a class="headerlink"
href="#run-sample-service" title="Permanent link">¶</a></h1>
-<p>After building and deploying your service to your server, you can try a
requests to the entity set via: <a
href="http://localhost:8080/DemoService-Action/DemoService.svc/Products">http://localhost:8080/DemoService-Action/DemoService.svc/Products</a></p>
+<p>After building and deploying your service to your server, you can try a
requests to the entity set via: <a
href="http://localhost:8080/DemoService/DemoService.svc/Products?$format=json">http://localhost:8080/DemoService/DemoService.svc/Products?$format=json</a></p>
+<p>The response is exactly the same response as in the none streaming request.
So unfortunaly here is no difference beside of the technical fact that the
response is serialized at the very end of the request chain and directly
written into the response output stream
(<code>javax.servlet.ServletOutputStream</code>)</p>
+<div class="codehilite"><pre><span class="p">{</span>
+ <span class="nt">"@odata.context"</span><span class="p">:</span>
<span class="s2">"$metadata#Products"</span><span class="p">,</span>
+ <span class="nt">"value"</span><span class="p">:</span> <span
class="p">[</span>
+ <span class="p">{</span>
+ <span class="nt">"ID"</span><span class="p">:</span> <span
class="mi">1</span><span class="p">,</span>
+ <span class="nt">"Name"</span><span class="p">:</span> <span
class="s2">"Notebook Basic 15"</span><span class="p">,</span>
+ <span class="nt">"Description"</span><span class="p">:</span>
<span class="s2">"Notebook Basic, 1.7GHz - 15 XGA - 1024MB DDR2 SDRAM -
40GB"</span>
+ <span class="p">},</span>
+ <span class="p">{</span>
+ <span class="nt">"ID"</span><span class="p">:</span> <span
class="mi">2</span><span class="p">,</span>
+ <span class="nt">"Name"</span><span class="p">:</span> <span
class="s2">"1UMTS PDA"</span><span class="p">,</span>
+ <span class="nt">"Description"</span><span class="p">:</span>
<span class="s2">"Ultrafast 3G UMTS/HSDPA Pocket PC, supports GSM
network"</span>
+ <span class="p">},</span>
+ <span class="p">{</span>
+ <span class="nt">"ID"</span><span class="p">:</span> <span
class="mi">3</span><span class="p">,</span>
+ <span class="nt">"Name"</span><span class="p">:</span> <span
class="s2">"Ergo Screen"</span><span class="p">,</span>
+ <span class="nt">"Description"</span><span class="p">:</span>
<span class="s2">"19 Optimum Resolution 1024 x 768 @ 85Hz, resolution 1280
x 960"</span>
+ <span class="p">}</span>
+ <span class="p">]</span>
+<span class="p">}</span>
+</pre></div>
+
+
<h1 id="links">Links<a class="headerlink" href="#links" title="Permanent
link">¶</a></h1>
<h3 id="tutorials">Tutorials<a class="headerlink" href="#tutorials"
title="Permanent link">¶</a></h3>
<p>Further topics to be covered by follow-up tutorials:</p>