cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r932469 - in /websites/production/cxf/content: cache/docs.pageCache docs/jax-rs-redirection.html
Date Fri, 12 Dec 2014 17:47:10 GMT
Author: buildbot
Date: Fri Dec 12 17:47:09 2014
New Revision: 932469

Log:
Production update by buildbot for cxf

Modified:
    websites/production/cxf/content/cache/docs.pageCache
    websites/production/cxf/content/docs/jax-rs-redirection.html

Modified: websites/production/cxf/content/cache/docs.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/cxf/content/docs/jax-rs-redirection.html
==============================================================================
--- websites/production/cxf/content/docs/jax-rs-redirection.html (original)
+++ websites/production/cxf/content/docs/jax-rs-redirection.html Fri Dec 12 17:47:09 2014
@@ -117,40 +117,17 @@ Apache CXF -- JAX-RS Redirection
          <td height="100%">
            <!-- Content -->
            <div class="wiki-content">
-<div id="ConfluenceContent"><p></p><p></p><p></p><p></p><p><span
class="inline-first-p" style="font-size:2em;font-weight:bold"> JAX-RS : Redirection </span></p><p></p><p></p><p></p><p></p><p></p>
+<div id="ConfluenceContent"><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;<span
class="inline-first-p" style="font-size:2em;font-weight:bold">JAX-RS : Redirection</span>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p><style
type="text/css">/*<![CDATA[*/
+div.rbtoc1418406403497 {padding: 0px;}
+div.rbtoc1418406403497 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1418406403497 li {margin-left: 0px;padding-left: 0px;}
 
-<style type="text/css">/*<![CDATA[*/
-div.rbtoc1408383988577 {padding: 0px;}
-div.rbtoc1408383988577 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1408383988577 li {margin-left: 0px;padding-left: 0px;}
-
-/*]]>*/</style><div class="toc-macro rbtoc1408383988577">
+/*]]>*/</style></p><div class="toc-macro rbtoc1418406403497">
 <ul class="toc-indentation"><li><a shape="rect" href="#JAX-RSRedirection-WithRequestDispatcherProvider">With
RequestDispatcherProvider</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#JAX-RSRedirection-Loggingredirects">Logging
redirects</a></li></ul>
 </li><li><a shape="rect" href="#JAX-RSRedirection-WithCXFServlet">With
CXFServlet</a></li><li><a shape="rect" href="#JAX-RSRedirection-CustomRedirection">Custom
Redirection</a></li></ul>
-</div>
-
-<h1 id="JAX-RSRedirection-WithRequestDispatcherProvider">With RequestDispatcherProvider</h1>
-
-<p><a shape="rect" class="external-link" href="http://svn.apache.org/repos/asf/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java">RequestDispatcherProvider</a>
is a JAXRS MessageBodyWriter which can redirect to JSP pages, named or default servlets. It
can be used to serve all the responses from a given resource class or restricted to serving
a limited set of classes only using a classResources map property.</p>
-
-<p>Starting from CXF 2.5.0 and 2.4.4 it is also possible to specify that only responses
to requests with matching URIs that will be processed.</p>
-
-<p>At the moment, this provider is statically configured to support text/html content
types, but it can be easily configured to support other content types if needed.  </p>
-
-<p>In addition to 'resourcePath' and 'dispatcherName' properties, one can set a 'scope'
property which has two possible values, 'request' and 'session' with 'request' being the default
value. It affects the way the JSP code can retrieve parameters passed to it by the RequestDispatcherProvider.
If it is a 'request' scope then all the parameters are set as the attributes on the current
HTTP request.  If session scope then they're set as the attributes on the current HTTP session.</p>
-
-<p><code>RequestDispatcherProvider</code> sets the following parameters
:</p>
-
-<ul class="alternate"><li>JAXRS method response object.  The name of this parameter
is either a simple class name of this object (lower case) or a value retrieved from a beanNames
map property using the fully qualified class name of this object.</li><li>All
the path, query and matrix parameters which have been initialized during the method execution</li><li>"absolute.path",
"base.path" and "relative.path" obtained from the current UriInfo</li></ul>
-
-
-
-<p>Here are some examples. Lets assume we have a book.war web application deployed.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent
pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;jaxrs:server id=&quot;bookservice1&quot; address=&quot;/bookstore1&quot;&gt;
+</div><h1 id="JAX-RSRedirection-WithRequestDispatcherProvider">With RequestDispatcherProvider</h1><p><a
shape="rect" class="external-link" href="http://svn.apache.org/repos/asf/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/RequestDispatcherProvider.java">RequestDispatcherProvider</a>
is a JAXRS MessageBodyWriter which can redirect to JSP pages, named or default servlets. It
can be used to serve all the responses from a given resource class or restricted to serving
a limited set of classes only using a classResources map property.</p><p>Starting
from CXF 2.5.0 and 2.4.4 it is also possible to specify that only responses to requests with
matching URIs that will be processed.</p><p>At the moment, this provider is statically
configured to support text/html content types, but it can be easily configured to support
other content types if needed.</p><p>In addition to 'resourcePath' and 'dispatcherName'
properties, one can set a 'scope' property which has two possi
 ble values, 'request' and 'session' with 'request' being the default value. It affects the
way the JSP code can retrieve parameters passed to it by the RequestDispatcherProvider. If
it is a 'request' scope then all the parameters are set as the attributes on the current HTTP
request. If session scope then they're set as the attributes on the current HTTP session.</p><p><code>RequestDispatcherProvider</code>
sets the following parameters :</p><ul class="alternate"><li>JAXRS method
response object. The name of this parameter is either a simple class name of this object (lower
case) or a value retrieved from a beanNames map property using the fully qualified class name
of this object.</li><li>All the path, query and matrix parameters which have been
initialized during the method execution</li><li>"absolute.path", "base.path" and
"relative.path" obtained from the current UriInfo</li></ul><p>Here are some
examples. Lets assume we have a book.war web application deployed.</p><div class="c
 ode panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;jaxrs:server
id=&quot;bookservice1&quot; address=&quot;/bookstore1&quot;&gt;
     &lt;jaxrs:serviceBeans&gt;
       &lt;bean class=&quot;org.apache.cxf.systest.jaxrs.BookStoreDispatch&quot;/&gt;
     &lt;/jaxrs:serviceBeans&gt;		  
@@ -164,27 +141,14 @@ div.rbtoc1408383988577 li {margin-left:
 &lt;/bean&gt;
 
 ]]></script>
-</div></div>
-
-<p>The above redirects the response to a default book.html page which is available
directly in the /webapps/book folder. Typically one would do it to return some static confirmation
to the client. For example, consider a POST form request that has been processed by a given
JAX-RS method and the only thing that needs to be done now is to return the HTML confirmation
view. Note that JAX-RS MessageBodyWriters are not invoked if the resource method returns no
custom object - which is not needed in the case of the static confirmation, so for RequestDispatcherProvider
be able to redirect to book.html one should simply introduce say an EmptyConfirmation bean
with no properties and return it from the resource method.</p>
-
-<p>Here is another example (omitting jaxrs:server declaration for brewity):</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent
pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-
-&lt;bean id=&quot;dispatchProvider&quot; class=&quot;org.apache.cxf.jaxrs.provider.RequestDispatcherProvider&quot;&gt;
+</div></div><p>The above redirects the response to a default book.html
page which is available directly in the /webapps/book folder. Typically one would do it to
return some static confirmation to the client. For example, consider a POST form request that
has been processed by a given JAX-RS method and the only thing that needs to be done now is
to return the HTML confirmation view. Note that JAX-RS MessageBodyWriters are not invoked
if the resource method returns no custom object - which is not needed in the case of the static
confirmation, so for RequestDispatcherProvider be able to redirect to book.html one should
simply introduce say an EmptyConfirmation bean with no properties and return it from the resource
method.</p><p>Here is another example (omitting jaxrs:server declaration for brewity):</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent
pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;bean
id=&quot;dispatchProvider&quot; class=&quot;org.apache.cxf.jaxrs.provider.RequestDispatcherProvider&quot;&gt;
       &lt;property name=&quot;resourcePath&quot; value=&quot;/book.jsp&quot;/&gt;
 &lt;/bean&gt;
 
 ]]></script>
-</div></div>
-
-<p>The only difference from the previous example is that "/book.jsp" will be delegated
to with the task of creating a view. This is a more interesting example and we presume that
the resource method returns say an instance of the "org.bar.Book" bean:</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(&quot;/books&quot;)
+</div></div><p>The only difference from the previous example is that "/book.jsp"
will be delegated to with the task of creating a view. This is a more interesting example
and we presume that the resource method returns say an instance of the "org.bar.Book" bean:</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(&quot;/books&quot;)
 public Resource {
     @GET
     @Produces({&quot;text/html&quot;, &quot;application/xml&quot;})
@@ -194,16 +158,8 @@ public Resource {
     }
 }
 ]]></script>
-</div></div>
-
-<p>Note how non-intrusive RequestDispatcherProvider is as far as writing the JAX-RS
resource code is concerned, you simply list supported media types in @Produces as usual. </p>
-
-<p>RequestDispatcherProvider will make an instance of Book available as an HttpServletRequest
attribute named "org.bar.Book" by default. this can be customized. If a "beanName" property
is set, for example to "book", then book.jsp will access a Book instance as a "book" attribute.
If you have say 2 resource methods returning instances of different bean classes, possibly
for different view handlers then a beanNames map property can be used, for example: </p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent
pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-
-&lt;bean id=&quot;dispatchProvider&quot; class=&quot;org.apache.cxf.jaxrs.provider.RequestDispatcherProvider&quot;&gt;
+</div></div><p>Note how non-intrusive RequestDispatcherProvider is as far
as writing the JAX-RS resource code is concerned, you simply list supported media types in
@Produces as usual.</p><p>RequestDispatcherProvider will make an instance of Book
available as an HttpServletRequest attribute named "org.bar.Book" by default. this can be
customized. If a "beanName" property is set, for example to "book", then book.jsp will access
a Book instance as a "book" attribute. If you have say 2 resource methods returning instances
of different bean classes, possibly for different view handlers then a beanNames map property
can be used, for example:</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;bean
id=&quot;dispatchProvider&quot; class=&quot;org.apache.cxf.jaxrs.provider.RequestDispatcherProvider&quot;&gt;
       &lt;property name=&quot;classResources&quot;&gt;
           &lt;map&gt;
              &lt;entry key=&quot;org.bar.Book&quot;  value=&quot;/book.jsp&quot;/&gt;
@@ -219,18 +175,8 @@ public Resource {
 &lt;/bean&gt;
 
 ]]></script>
-</div></div>
-
-<p>The above configuration says that a "book.jsp" resource will handle an instance
of Book by accessing it as a "book" attribute and a "customer.jsp" - an instance of Customer
by retrieving it as a "customer" attribute. Note you don't need to use the "beanNames" property
in such cases, a simpler "beanName" property can do unless you have a single (jsp) resource
dealing with both Book and Customer. </p>
-
-<p>Apart from making an instance of response class available as HttpServletRequest
attribute, RequestDispatcherProvider will also make all the Path, Query and Matrix parameters
available as HttpServletRequest parameters (as opposed to attributes) by default. For example,
given the above code fragment, an HttpServletRequest parameter named "id" representing a @PathParam("id")
available to the view handler, as well as all other query and matrix parameters.<br clear="none">
-Note that RequestDispatcherProvider can be configured to save all these request parameters
as HttpServletRequest attributes by setting a boolean saveParametersAsAttributes property
to true. </p>
-
-<p>Now, imagine a scenario like this: we have two resource methods returning a ReservationStatus
bean. The first method returns a successful confirmation or uses Response.seeOther(...) to
redirect to a method handling the failed reservation. So both methods return the same ReservationStatus
bean but we will have two different views handling successful and failed reservations respectively.
Here is one way to manage it:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent
pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;bean id=&quot;reserveRegistrationViews&quot; class=&quot;org.apache.cxf.jaxrs.provider.RequestDispatcherProvider&quot;&gt;
+</div></div><p>The above configuration says that a "book.jsp" resource
will handle an instance of Book by accessing it as a "book" attribute and a "customer.jsp"
- an instance of Customer by retrieving it as a "customer" attribute. Note you don't need
to use the "beanNames" property in such cases, a simpler "beanName" property can do unless
you have a single (jsp) resource dealing with both Book and Customer.</p><p>Apart
from making an instance of response class available as HttpServletRequest attribute, RequestDispatcherProvider
will also make all the Path, Query and Matrix parameters available as HttpServletRequest parameters
(as opposed to attributes) by default. For example, given the above code fragment, an HttpServletRequest
parameter named "id" representing a @PathParam("id") available to the view handler, as well
as all other query and matrix parameters.<br clear="none"> Note that RequestDispatcherProvider
can be configured to save all these request parameters as HttpServlet
 Request attributes by setting a boolean saveParametersAsAttributes property to true.</p><p>Now,
imagine a scenario like this: we have two resource methods returning a ReservationStatus bean.
The first method returns a successful confirmation or uses Response.seeOther(...) to redirect
to a method handling the failed reservation. So both methods return the same ReservationStatus
bean but we will have two different views handling successful and failed reservations respectively.
Here is one way to manage it:</p><div class="code panel pdl" style="border-width:
1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;bean
id=&quot;reserveRegistrationViews&quot; class=&quot;org.apache.cxf.jaxrs.provider.RequestDispatcherProvider&quot;&gt;
          &lt;property name=&quot;resourcePaths&quot;&gt;
             &lt;map&gt;
               &lt;entry key=&quot;/reservations/reserve/complete&quot; value=&quot;/forms/reservationConfirm.jsp&quot;/&gt;
@@ -240,18 +186,8 @@ Note that RequestDispatcherProvider can
          &lt;property name=&quot;beanName&quot; value=&quot;data&quot;/&gt;
 &lt;/bean&gt;
 ]]></script>
-</div></div>
-
-<p>Given that the same ReservationStatus bean is returned in both cases, it is actually
the original request URI fragments which are used to match which view handler will deal with
a given ReservationStatus, example, a response to request URI "http://localhost:8080/reservations/reserve/complete"
will be handled by "/forms/reservationConfirm.jsp".  </p>
-
-<p>Note that RequestDispatcherProvider has a 'dispatcherName' property - that can be
handy when redirecting to named servlets (example, MyServlet) including<br clear="none">
-such ones as "jsp" or "default", especially when CXFServlet handling a given invocation has
a uri pattern (typically, wildcard) that may also capture the redirection request,  see the
next section for more information. </p>
-
-<p>Next, imagine a scenario like this: we have a single resource method accepting some
data and the response view will need to be different depending on the status of the request
processing. Using enumerations is the most effective option in this case:</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[
-package resource;
+</div></div><p>Given that the same ReservationStatus bean is returned in
both cases, it is actually the original request URI fragments which are used to match which
view handler will deal with a given ReservationStatus, example, a response to request URI
"http://localhost:8080/reservations/reserve/complete" will be handled by "/forms/reservationConfirm.jsp".</p><p>Note
that RequestDispatcherProvider has a 'dispatcherName' property - that can be handy when redirecting
to named servlets (example, MyServlet) including<br clear="none"> such ones as "jsp"
or "default", especially when CXFServlet handling a given invocation has a uri pattern (typically,
wildcard) that may also capture the redirection request, see the next section for more information.</p><p>Next,
imagine a scenario like this: we have a single resource method accepting some data and the
response view will need to be different depending on the status of the request processing.
Using enumerations is the most effective option
  in this case:</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[package
resource;
 
 public class Status {
     UPDATE_SUCCESS,
@@ -272,26 +208,14 @@ public class Resource {
   } 
 } 
 ]]></script>
-</div></div>
-
-
-<p>Next, you may have a single JSP handler which will check whether it is Status.UPDATE_SUCCESS
or Status.UPDATE_FAILURE and format the response accordingly. In this case a basic RequestDispatcherProvider
configuration will do:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent
pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-
-&lt;bean id=&quot;dispatchProvider&quot; class=&quot;org.apache.cxf.jaxrs.provider.RequestDispatcherProvider&quot;&gt;
+</div></div><p>Next, you may have a single JSP handler which will check
whether it is Status.UPDATE_SUCCESS or Status.UPDATE_FAILURE and format the response accordingly.
In this case a basic RequestDispatcherProvider configuration will do:</p><div class="code
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;bean
id=&quot;dispatchProvider&quot; class=&quot;org.apache.cxf.jaxrs.provider.RequestDispatcherProvider&quot;&gt;
       &lt;property name=&quot;resourcePath&quot; value=&quot;/updateStatus.jsp&quot;/&gt;
 &lt;/bean&gt;
 
 ]]></script>
-</div></div>
-
-<p>Alternatively you may have a dedicated view handler dealing with the specific status,
in this case either:   </p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent
pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;bean id=&quot;reserveRegistrationViews&quot; class=&quot;org.apache.cxf.jaxrs.provider.RequestDispatcherProvider&quot;&gt;
+</div></div><p>Alternatively you may have a dedicated view handler dealing
with the specific status, in this case either:</p><div class="code panel pdl" style="border-width:
1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;bean
id=&quot;reserveRegistrationViews&quot; class=&quot;org.apache.cxf.jaxrs.provider.RequestDispatcherProvider&quot;&gt;
          &lt;property name=&quot;classResources&quot;&gt;
             &lt;map&gt;
               &lt;entry key=&quot;resource.Status.UPDATE_SUCCESS&quot; value=&quot;/forms/updateSuccess.jsp&quot;/&gt;
@@ -300,13 +224,8 @@ public class Resource {
          &lt;/property&gt;
 &lt;/bean&gt;
 ]]></script>
-</div></div>
-
-<p>or, starting from CXF 2.7.1,</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent
pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
+</div></div><p>or, starting from CXF 2.7.1,</p><div class="code
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;beans
xmlns=&quot;http://www.springframework.org/schema/beans&quot;
       xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
       xmlns:util=&quot;http://www.springframework.org/schema/util&quot;
       xsi:schemaLocation=&quot;
@@ -333,76 +252,31 @@ http://www.springframework.org/schema/ut
 &lt;/bean&gt;
 &lt;/beans&gt;
 ]]></script>
-</div></div>
-
-<p>will help.</p>
-
-
-<p>Starting from CXF 2.6.1 it is possible to configure the provider to check if the
current class has an associated view handler or not, for example:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent
pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;bean id=&quot;viewHandler&quot; class=&quot;org.apache.cxf.jaxrs.provider.RequestDispatcherProvider&quot;&gt;
+</div></div><p>will help.</p><p>Starting from CXF 2.6.1 it
is possible to configure the provider to check if the current class has an associated view
handler or not, for example:</p><div class="code panel pdl" style="border-width:
1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;bean
id=&quot;viewHandler&quot; class=&quot;org.apache.cxf.jaxrs.provider.RequestDispatcherProvider&quot;&gt;
          &lt;property name=&quot;dispatcherName&quot; value=jsp&quot;&quot;/&gt;
          &lt;property name=&quot;useClassNames&quot; value=&quot;true&quot;/&gt;
 &lt;/bean&gt;
 ]]></script>
-</div></div>
-
-<p>For example, given a simple class name such as "BookInfo", RequestDispatcherProvider
will check if a "/WEB-INF/bookInfo.jsp" handler is available or not. The provider will likely
be extended to check few more locations as needed.  </p>
-
-<p>RequestDispatcherProvider also checks a "redirect.resource.path" property on the
outbound message. If this property is set then it will try to find a RequestDispatcher available
on a given path.</p>
-
-
-<p>Finally, a 'servletContextPath' property can be used to have some other ServletContext
(as opposed to the current one) be used for RequestDispatcher look-ups. If set then the current
ServletContext.getContext(servletContextPath) will be used to get the needed ServletContext.</p>
-
-<h2 id="JAX-RSRedirection-Loggingredirects">Logging redirects</h2>
-
-<p>To get RequestDispatcherProvider log the information about redirects, please set
a 'logRedirects' property:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent
pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;bean id=&quot;reserveRegistrationViews&quot; class=&quot;org.apache.cxf.jaxrs.provider.RequestDispatcherProvider&quot;&gt;
+</div></div><p>For example, given a simple class name such as "BookInfo",
RequestDispatcherProvider will check if a "/WEB-INF/bookInfo.jsp" handler is available or
not. The provider will likely be extended to check few more locations as needed.</p><p>RequestDispatcherProvider
also checks a "redirect.resource.path" property on the outbound message. If this property
is set then it will try to find a RequestDispatcher available on a given path.</p><p>A
new property, "includeResource" is available starting from CXF 3.0.4: RequestDispatcher.include()
instead of RequestDispatcher.forward() will be used if this property is set to true.</p><p>Finally,
a 'servletContextPath' property can be used to have some other ServletContext (as opposed
to the current one) be used for RequestDispatcher look-ups. If set then the current ServletContext.getContext(servletContextPath)
will be used to get the needed ServletContext.</p><h2 id="JAX-RSRedirection-Loggingredirects">Logging
redirects</h2><p>To get
  RequestDispatcherProvider log the information about redirects, please set a 'logRedirects'
property:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;bean
id=&quot;reserveRegistrationViews&quot; class=&quot;org.apache.cxf.jaxrs.provider.RequestDispatcherProvider&quot;&gt;
          &lt;property name=&quot;logRedirects&quot; value=&quot;true&quot;/&gt;
          &lt;!-- other properties as needed --&gt; 
 &lt;/bean&gt;
 ]]></script>
-</div></div>
-
-<p>You will see the logging entry like this one:</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[
-23-Jul-2012 11:26:13 org.apache.cxf.jaxrs.provider.RequestDispatcherProvider logRedirection
+</div></div><p>You will see the logging entry like this one:</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[23-Jul-2012
11:26:13 org.apache.cxf.jaxrs.provider.RequestDispatcherProvider logRedirection
 
 INFO: Setting an instance of &quot;oauth2.common.ConsumerRegistration&quot; as HttpServletRequest
attribute &quot;newClient&quot; and redirecting the response to &quot;/forms/registerAppConfirm.jsp&quot;
 ]]></script>
-</div></div>
-
-<h1 id="JAX-RSRedirection-WithCXFServlet">With CXFServlet</h1>
-
-<p>Please see the "Redirection" section on the <a shape="rect" href="servlet-transport.html">Servlet
Transport</a> page.</p>
-
-<p>Note that both CXFServlet and JAXRS RequestDispatcherProvider can work together
effectively on executing the redirection requests as described at that page.</p>
-
-<p>If CXFServlet URI pattern does not match the resource URIs RequestDispatcherProvider
is redirecting to then there's nothing to worry about. </p>
-
-<p>If you have CXFServlet listening on "/" (thus effectively catching all the requests)
and also would like to use RequestDispatcherProvider, then make sure that a 'dispatcherName'
property is also set, for example:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent
pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;bean id=&quot;dispatchProvider&quot; class=&quot;org.apache.cxf.jaxrs.provider.RequestDispatcherProvider&quot;&gt;
+</div></div><h1 id="JAX-RSRedirection-WithCXFServlet">With CXFServlet</h1><p>Please
see the "Redirection" section on the <a shape="rect" href="servlet-transport.html">Servlet
Transport</a> page.</p><p>Note that both CXFServlet and JAXRS RequestDispatcherProvider
can work together effectively on executing the redirection requests as described at that page.</p><p>If
CXFServlet URI pattern does not match the resource URIs RequestDispatcherProvider is redirecting
to then there's nothing to worry about.</p><p>If you have CXFServlet listening
on "/" (thus effectively catching all the requests) and also would like to use RequestDispatcherProvider,
then make sure that a 'dispatcherName' property is also set, for example:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent
pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;bean
id=&quot;dispatchProvider&quot; class=&quot;org.apache.cxf.jaxrs.provider.RequestDispatcherProvider&quot;&gt;
     &lt;property name=&quot;dispatcherName&quot; value=&quot;jsp&quot;/&gt;
     &lt;property name=&quot;resourcePath&quot; value=&quot;/WEB-INF/jsp/test.jsp&quot;/&gt;
 &lt;/bean&gt; 
 ]]></script>
-</div></div>
-
-<p>If resources which are redirected to can be made public (i.e, moved out of /WEB-INF)
then alternative option (instead of adding a 'dispatcherName' property to RequestDispatcherProvider
and still have CXFServlet listening on '/') is to configure both RequestDispatcherProvider
and CXFServlet to redirect to resources such as "/jsp/test.jsp". </p>
-
-<p>Also if you have many public view handlers then rather than having a "dispatcherName"
property set on every dispatcher bean, you can get it set only once on CXFServlet:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent
pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;servlet&gt;
+</div></div><p>If resources which are redirected to can be made public
(i.e, moved out of /WEB-INF) then alternative option (instead of adding a 'dispatcherName'
property to RequestDispatcherProvider and still have CXFServlet listening on '/') is to configure
both RequestDispatcherProvider and CXFServlet to redirect to resources such as "/jsp/test.jsp".</p><p>Also
if you have many public view handlers then rather than having a "dispatcherName" property
set on every dispatcher bean, you can get it set only once on CXFServlet:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent
pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;servlet&gt;
         &lt;servlet-name&gt;RESTServlet&lt;/servlet-name&gt;
         &lt;servlet-class&gt;org.apache.cxf.transport.servlet.CXFServlet&lt;/servlet-class&gt;
         &lt;init-param&gt;
@@ -420,14 +294,7 @@ INFO: Setting an instance of &quot;oauth
         &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
     &lt;/servlet-mapping&gt;
 ]]></script>
-</div></div>
-
-<p>Here we have all the requests targeted at /form/* (example, /form/book.jsp, etc)
handled by a jsp handler.</p>
-
-
-<h1 id="JAX-RSRedirection-CustomRedirection">Custom Redirection</h1>
-
-<p>One can borrow some of the code from RequestDispatcherProvider and do the custom
redirection from CXF in interceptors or custom invokers, if you will try to do it then you
will also need to set an AbstractHTTPDestination.REQUEST_REDIRECTED property with a 'true'
value on a current input message.</p></div>
+</div></div><p>Here we have all the requests targeted at /form/* (example,
/form/book.jsp, etc) handled by a jsp handler.</p><h1 id="JAX-RSRedirection-CustomRedirection">Custom
Redirection</h1><p>One can borrow some of the code from RequestDispatcherProvider
and do the custom redirection from CXF in interceptors or custom invokers, if you will try
to do it then you will also need to set an AbstractHTTPDestination.REQUEST_REDIRECTED property
with a 'true' value on a current input message.</p></div>
            </div>
            <!-- Content -->
          </td>



Mime
View raw message