blob: 3b135ec5be4de20b9ccc8e42abef104e2b985e8d [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1 at 2022-07-14
| Rendered using Apache Maven Fluido Skin 1.6
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="Date-Revision-yyyymmdd" content="20220714" />
<meta http-equiv="Content-Language" content="en" />
<title>Apache Axis2 &#x2013; How to configure Native approach and XML Stream API base approach</title>
<link rel="stylesheet" href="../css/apache-maven-fluido-1.6.min.css" />
<link rel="stylesheet" href="../css/site.css" />
<link rel="stylesheet" href="../css/print.css" media="print" />
<script type="text/javascript" src="../js/apache-maven-fluido-1.6.min.js"></script>
</head>
<body class="topBarDisabled">
<div class="container-fluid">
<div id="banner">
<div class="pull-left"><a href="http://www.apache.org/" id="bannerLeft"><img src="http://www.apache.org/images/asf_logo_wide.png" alt="Apache Axis2"/></a></div>
<div class="pull-right"><a href=".././" id="bannerRight"><img src="../images/axis.jpg" /></a></div>
<div class="clear"><hr/></div>
</div>
<div id="breadcrumbs">
<ul class="breadcrumb">
<li id="publishDate">Last Published: 2022-07-14<span class="divider">|</span>
</li>
<li id="projectVersion">Version: 1.8.2<span class="divider">|</span></li>
<li class=""><a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
<li class=""><a href="../index.html" title="Axis2/Java">Axis2/Java</a><span class="divider">/</span></li>
<li class="active ">How to configure Native approach and XML Stream API base approach</li>
</ul>
</div>
<div class="row-fluid">
<div id="leftColumn" class="span2">
<div class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header">Axis2/Java</li>
<li><a href="../index.html" title="Home"><span class="none"></span>Home</a> </li>
<li><a href="../download.html" title="Downloads"><span class="none"></span>Downloads</a> </li>
<li><a href="javascript:void(0)" title="Release Notes"><span class="icon-chevron-down"></span>Release Notes</a>
<ul class="nav nav-list">
<li><a href="../release-notes/1.6.1.html" title="1.6.1"><span class="none"></span>1.6.1</a> </li>
<li><a href="../release-notes/1.6.2.html" title="1.6.2"><span class="none"></span>1.6.2</a> </li>
<li><a href="../release-notes/1.6.3.html" title="1.6.3"><span class="none"></span>1.6.3</a> </li>
<li><a href="../release-notes/1.6.4.html" title="1.6.4"><span class="none"></span>1.6.4</a> </li>
<li><a href="../release-notes/1.7.0.html" title="1.7.0"><span class="none"></span>1.7.0</a> </li>
<li><a href="../release-notes/1.7.1.html" title="1.7.1"><span class="none"></span>1.7.1</a> </li>
<li><a href="../release-notes/1.7.2.html" title="1.7.2"><span class="none"></span>1.7.2</a> </li>
<li><a href="../release-notes/1.7.3.html" title="1.7.3"><span class="none"></span>1.7.3</a> </li>
<li><a href="../release-notes/1.7.4.html" title="1.7.4"><span class="none"></span>1.7.4</a> </li>
<li><a href="../release-notes/1.7.5.html" title="1.7.5"><span class="none"></span>1.7.5</a> </li>
<li><a href="../release-notes/1.7.6.html" title="1.7.6"><span class="none"></span>1.7.6</a> </li>
<li><a href="../release-notes/1.7.7.html" title="1.7.7"><span class="none"></span>1.7.7</a> </li>
<li><a href="../release-notes/1.7.8.html" title="1.7.8"><span class="none"></span>1.7.8</a> </li>
<li><a href="../release-notes/1.7.9.html" title="1.7.9"><span class="none"></span>1.7.9</a> </li>
<li><a href="../release-notes/1.8.0.html" title="1.8.0"><span class="none"></span>1.8.0</a> </li>
</ul>
</li>
<li><a href="../modules/index.html" title="Modules"><span class="none"></span>Modules</a> </li>
<li><a href="../tools/index.html" title="Tools"><span class="none"></span>Tools</a> </li>
<li class="nav-header">Documentation</li>
<li><a href="../docs/toc.html" title="Table of Contents"><span class="none"></span>Table of Contents</a> </li>
<li><a href="../docs/installationguide.html" title="Installation Guide"><span class="none"></span>Installation Guide</a> </li>
<li><a href="../docs/quickstartguide.html" title="QuickStart Guide"><span class="none"></span>QuickStart Guide</a> </li>
<li><a href="../docs/userguide.html" title="User Guide"><span class="none"></span>User Guide</a> </li>
<li><a href="../docs/jaxws-guide.html" title="JAXWS Guide"><span class="none"></span>JAXWS Guide</a> </li>
<li><a href="../docs/pojoguide.html" title="POJO Guide"><span class="none"></span>POJO Guide</a> </li>
<li><a href="../docs/spring.html" title="Spring Guide"><span class="none"></span>Spring Guide</a> </li>
<li><a href="../docs/webadminguide.html" title="Web Administrator's Guide"><span class="none"></span>Web Administrator's Guide</a> </li>
<li><a href="../docs/migration.html" title="Migration Guide (from Axis1)"><span class="none"></span>Migration Guide (from Axis1)</a> </li>
<li class="nav-header">Resources</li>
<li><a href="../faq.html" title="FAQ"><span class="none"></span>FAQ</a> </li>
<li><a href="../articles.html" title="Articles"><span class="none"></span>Articles</a> </li>
<li><a href="http://wiki.apache.org/ws/FrontPage/Axis2/" class="externalLink" title="Wiki"><span class="none"></span>Wiki</a> </li>
<li><a href="../refLib.html" title="Reference Library"><span class="none"></span>Reference Library</a> </li>
<li><a href="../apidocs/index.html" title="Online Java Docs"><span class="none"></span>Online Java Docs</a> </li>
<li class="nav-header">Get Involved</li>
<li><a href="../overview.html" title="Overview"><span class="none"></span>Overview</a> </li>
<li><a href="../git.html" title="Checkout the Source"><span class="none"></span>Checkout the Source</a> </li>
<li><a href="../mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a> </li>
<li><a href="../release-process.html" title="Release Process"><span class="none"></span>Release Process</a> </li>
<li><a href="../guidelines.html" title="Developer Guidelines"><span class="none"></span>Developer Guidelines</a> </li>
<li><a href="../siteHowTo.html" title="Build the Site"><span class="none"></span>Build the Site</a> </li>
<li class="nav-header">Project Information</li>
<li><a href="../team-list.html" title="Project Team"><span class="none"></span>Project Team</a> </li>
<li><a href="../issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a> </li>
<li><a href="http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/" class="externalLink" title="Source Code"><span class="none"></span>Source Code</a> </li>
<li><a href="../thanks.html" title="Acknowledgements"><span class="none"></span>Acknowledgements</a> </li>
<li class="nav-header">Apache</li>
<li><a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License"><span class="none"></span>License</a> </li>
<li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a> </li>
<li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a> </li>
<li><a href="http://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a> </li>
</ul>
<hr />
<div id="poweredBy">
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
</div>
</div>
</div>
<div id="bodyColumn" class="span10" >
<h1>How to configure Native approach and XML Stream API base approach</h1>
<a name="native_approach"></a><section id="native_approach">
<h2><a name="How_to_use_Native_JSON_support"></a>How to use Native JSON support</h2>
<p>If you need to expose your POJO services to support pure JSON requests as well as SOAP requests, then you
need to go through the following process to do that with this new feature introduced into Axis2 JSON
support.</p>
<p>Step 1 : Set in-out message receiver and in-only message receiver</p>
<p>You need to set <code>org.apache.axis2.json.gson.rpc.JsonRpcMessageReceiver</code> with
<code>http://www.w3.org/ns/wsdl/in-out</code> message exchange pattern. Also with <code>http://www.w3.org/ns/wsdl/in-only</code>
message exchange pattern, set <code>org.apache.axis2.json.gson.rpc.JsonInOnlyRPCMessageReceiver</code>. </p>
<p>eg.</p>
<div>
<pre>
&lt;messageReceivers&gt;
&lt;messageReceiver mep=&quot;http://www.w3.org/ns/wsdl/in-out&quot;
class=&quot;org.apache.axis2.json.gson.rpc.JsonRpcMessageReceiver&quot;/&gt;
&lt;messageReceiver mep=&quot;http://www.w3.org/ns/wsdl/in-only&quot;
class=&quot;org.apache.axis2.json.gson.rpc.JsonInOnlyRPCMessageReceiver&quot;/&gt;
&lt;/messageReceivers&gt;
</pre></div>
<p>Step 2: Set message builder and message formatter</p>
<p>you need to edit axis2.xml in <code>[AXIS2_HOME]/conf/ </code>directory, to set <code>org.apache.axis2.json.gson.JsonBuilder</code>
as message builder with application/json contentType to handle JSON requests and
<code>org.apache.axis2.json.gson.JsonFormatter</code> as message formatter with application/json
contentType to write response to wire as JSON format.</p>
<p>eg.</p>
<div>
<pre>
&lt;messageBuilder contentType=&quot;application/json&quot;
class=&quot;org.apache.axis2.json.gson.JsonBuilder&quot; /&gt;
&lt;messageFormatter contentType=&quot;application/json&quot;
class=&quot;org.apache.axis2.json.gson.JsonFormatter&quot; /&gt;
</pre></div>
</section>
<a name="xml_stream_api_base_approach"></a><section id="xml_stream_api_base_approach">
<h2><a name="How_to_use_XML_stream_API_based_approach"></a>How to use XML stream API based approach</h2>
<p>You can use this XML Stream API based approach with databinding services like ADB and xmlbeans as well
as with normal POJO services. Follow the steps mentioned below to use this new feature introduced into
Axis2 JSON support.</p>
<p>Step 1 : Set message builder and message formatter</p>
<p>You need to edit axis2.xml in <code>[AXIS2_HOME]/conf/</code> directory, to set <code>org.apache.axis2.json.gson.JsonBuilder</code>
as message builder with <code>application/json</code> contentType to handle JSON requests and,
<code>org.apache.axis2.json.gson.JsonFormatter</code> as message formatter with <code>application/json</code> contentType to
write response to wire as JSON format.</p>
<p>eg.</p>
<div>
<pre>
&lt;messageBuilder contentType=&quot;application/json&quot;
class=&quot;org.apache.axis2.json.gson.JsonBuilder&quot; /&gt;
&lt;messageFormatter contentType=&quot;application/json&quot;
class=&quot;org.apache.axis2.json.gson.JsonFormatter&quot; /&gt;
</pre></div>
<p>Step 2: Set inflow handlers</p>
<p>Remove RequestURIOperationDispatcher handler from dispatch phase and place it as the last handler in
transport phase. Now add new JSONMessageHandler after the RequestURIOperationDispatcher. Finally
transport phase would be like following,</p>
<div>
<pre>
&lt;phaseOrder type=&quot;InFlow&quot;&gt;
&lt;!-- System predefined phases --&gt;
&lt;phase name=&quot;Transport&quot;&gt;
-------------
&lt;handler name=&quot;RequestURIOperationDispatcher&quot;
class=&quot;org.apache.axis2.dispatchers.RequestURIOperationDispatcher&quot;/&gt;
&lt;handler name=&quot;JSONMessageHandler&quot;
class=&quot;org.apache.axis2.json.gson.JSONMessageHandler&quot; /&gt;
&lt;/phase&gt;
------------
&lt;/phaseOrder&gt;
</pre></div>
</section>
</div>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row-fluid">
<p>Copyright &copy;2004&#x2013;2022
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
</div>
</div>
</footer>
</body>
</html>