Author: buildbot
Date: Tue Apr 22 16:47:17 2014
New Revision: 906526
Log:
Production update by buildbot for cxf
Modified:
websites/production/cxf/content/cache/docs.pageCache
websites/production/cxf/content/docs/jax-rs-basics.html
Modified: websites/production/cxf/content/cache/docs.pageCache
==============================================================================
Binary files - no diff available.
Modified: websites/production/cxf/content/docs/jax-rs-basics.html
==============================================================================
--- websites/production/cxf/content/docs/jax-rs-basics.html (original)
+++ websites/production/cxf/content/docs/jax-rs-basics.html Tue Apr 22 16:47:17
2014
@@ -118,17 +118,19 @@ Apache CXF -- JAX-RS Basics
<td height="100%">
<!-- Content -->
<div class="wiki-content">
-<div id="ConfluenceContent"><p><span style="font-size:2em;font-weight:bold">
JAX-RS : Understanding the Basics </span></p><p></p><p> </p><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1396468202782 {padding: 0px;}
-div.rbtoc1396468202782 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1396468202782 li {margin-left: 0px;padding-left: 0px;}
+<div id="ConfluenceContent"><span style="font-size:2em;font-weight:bold">
JAX-RS : Understanding the Basics </span><p> </p><p> </p><p><style
type="text/css">/*<![CDATA[*/
+div.rbtoc1398185207084 {padding: 0px;}
+div.rbtoc1398185207084 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1398185207084 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1396468202782">
+/*]]>*/</style></p><div class="toc-macro rbtoc1398185207084">
<ul class="toc-indentation"><li><a shape="rect"
href="#JAX-RSBasics-WhatisNewinJAX-RS2.0">What is New in JAX-RS 2.0</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#JAX-RSBasics-Filters">Filters</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#JAX-RSBasics-Server">Server</a></li><li><a shape="rect"
href="#JAX-RSBasics-Client">Client</a></li></ul>
</li><li><a shape="rect"
href="#JAX-RSBasics-Interceptors">Interceptors</a></li><li><a shape="rect"
href="#JAX-RSBasics-DynamicFeatures">Dynamic Features</a></li><li><a
shape="rect" href="#JAX-RSBasics-Exceptions">Exceptions</a></li><li><a
shape="rect" href="#JAX-RSBasics-Suspendedinvocations">Suspended
invocations</a></li><li><a shape="rect"
href="#JAX-RSBasics-Parameterconverters">Parameter converters</a></li><li><a
shape="rect" href="#JAX-RSBasics-Beanparameters">Bean parameters</a></li><li><a
shape="rect" href="#JAX-RSBasics-ResourceInfo">ResourceInfo</a></li><li><a
shape="rect" href="#JAX-RSBasics-Injectionintosubresources">Injection into
subresources</a></li><li><a shape="rect"
href="#JAX-RSBasics-Updatestothematchingalgorithm">Updates to the matching
algorithm</a></li><li><a shape="rect"
href="#JAX-RSBasics-Link">Link</a></li><li><a shape="rect"
href="#JAX-RSBasics-ClientAPI">Client API</a></li></ul>
-</li><li><a shape="rect" href="#JAX-RSBasics-Resourceclass">Resource
class</a></li><li><a shape="rect"
href="#JAX-RSBasics-@Path">@Path</a></li><li><a shape="rect"
href="#JAX-RSBasics-HTTPMethod">HTTP Method</a></li><li><a shape="rect"
href="#JAX-RSBasics-Returntypes">Return types</a></li><li><a shape="rect"
href="#JAX-RSBasics-Exceptionhandling">Exception handling</a>
+</li><li><a shape="rect" href="#JAX-RSBasics-Resourceclass">Resource
class</a></li><li><a shape="rect"
href="#JAX-RSBasics-@Path">@Path</a></li><li><a shape="rect"
href="#JAX-RSBasics-HTTPMethod">HTTP Method</a></li><li><a shape="rect"
href="#JAX-RSBasics-Returntypes">Return types</a></li><li><a shape="rect"
href="#JAX-RSBasics-ResponseStreaming">Response Streaming </a>
+<ul class="toc-indentation"><li><a shape="rect"
href="#JAX-RSBasics-JAX-RSStreamingOutput">JAX-RS
StreamingOutput</a></li><li><a shape="rect"
href="#JAX-RSBasics-CXFStreamingResponse">CXF StreamingResponse</a></li></ul>
+</li><li><a shape="rect" href="#JAX-RSBasics-Exceptionhandling">Exception
handling</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#JAX-RSBasics-MappingexceptionsthrownfromCXFinterceptors">Mapping
exceptions thrown from CXF interceptors</a></li><li><a shape="rect"
href="#JAX-RSBasics-CustomizingdefaultWebApplicationExceptionmapper">Customizing
default WebApplicationException mapper</a></li></ul>
</li><li><a shape="rect" href="#JAX-RSBasics-DealingwithParameters">Dealing
with Parameters</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#JAX-RSBasics-Parameterbeans">Parameter beans</a></li></ul>
@@ -252,7 +254,34 @@ import java.lang.annotation.Target;
public @interface PATCH {
}
]]></script>
-</div></div><h1 id="JAX-RSBasics-Returntypes">Return types</h1><p>Either
javax.ws.rs.core.Response or custom type can be returned.
javax.ws.rs.core.Response can be used to set the HTTP response code, headers
and entity. JAX-RS MessageBodyWriters (see below) are in charge of serializing
the response entities, those which are returned directly or as part of
javax.ws.rs.core.Response.</p><h1 id="JAX-RSBasics-Exceptionhandling">Exception
handling</h1><p>One can either throw an unchecked WebApplicationException or
return Response with a proper error code set.<br clear="none"> The former
option may be a better one when no JAX-RS types can be added to method
signatures.</p><p>For example :</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h1 id="JAX-RSBasics-Returntypes">Return types</h1><p>Either
javax.ws.rs.core.Response or custom type can be returned.
javax.ws.rs.core.Response can be used to set the HTTP response code, headers
and entity. JAX-RS MessageBodyWriters (see below) are in charge of serializing
the response entities, those which are returned directly or as part of
javax.ws.rs.core.Response.</p><h1 id="JAX-RSBasics-ResponseStreaming">Response
Streaming </h1><h2 id="JAX-RSBasics-JAX-RSStreamingOutput">JAX-RS
StreamingOutput</h2><p><a shape="rect" class="external-link"
href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/core/StreamingOutput.html"
rel="nofollow">StreamingOutput</a> can be used to stream the data to the
client, for example:</p><div class="code panel pdl" style="border-width:
1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[@GET
+@Path("/books/pdf")
+@Produces("application/pdf")
+public StreamingOutput getPdf() {
+ return new StreamingOutput() {
+ public void write(final OutputStream os) {
+ // read chunks of data from PDF and write to OutputStream
+ } Â
+ };
+}
+]]></script>
+</div></div><h2 id="JAX-RSBasics-CXFStreamingResponse">CXF
StreamingResponse</h2><p>CXF 3.0.0 introduces <a shape="rect"
class="external-link"
href="https://git-wip-us.apache.org/repos/asf?p=cxf.git;a=blob;f=rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/StreamingResponse.java">StreamingResponse</a>
extension. It can be used with the WebSocket transport or as a possible
replacement for the code working with StreamingOutput.</p><p><a shape="rect"
class="external-link"
href="https://jax-rs-spec.java.net/nonav/2.0/apidocs/javax/ws/rs/core/StreamingOutput.html"
rel="nofollow">F</a>or example, consider that a number of resources need to be
returned as they become available:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[@GET
+@Path("/books")
+@Produces("application/xml")
+public StreamingResponse<Book> getBooks() {
+ return new StreamingResponse<Book>() {
+ public void writeTo(final Writer<Book> writer) {
+
writer.getEntityStream().write("<Books>".getBytes());
+ writer.write(new Book("CXF"));
+ writer.write(new Book("JAX-RS"));
+
writer.getEntityStream().write("</Books>".getBytes());
+ } Â
+ };
+}
+]]></script>
+</div></div><h1 id="JAX-RSBasics-Exceptionhandling">Exception
handling</h1><p>One can either throw an unchecked WebApplicationException or
return Response with a proper error code set.<br clear="none"> The former
option may be a better one when no JAX-RS types can be added to method
signatures.</p><p>For example :</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[@Path("/customerservice/")
public class CustomerService {