<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.9.2 at 2021-08-01 
 | 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="20210801" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Axis2 &#x2013; </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: 2021-08-01<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.8.0<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 "></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.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="https://github.com/apache/axis-axis2-java-core/" 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" >
<section>
<h2><a name="UDP_Transport"></a>UDP Transport</h2><section>
<h3><a name="Content">Content</a></h3>
<ul>
<li><a href="#UDP_Transport">UDP Transport</a>
<ul>
<li><a href="#Content">Content</a></li>
<li><a href="#Transport_listener">Transport listener</a>
<ul>
<li><a href="#Listener_configuration">Listener configuration</a></li>
<li><a href="#Endpoint_configuration">Endpoint configuration</a></li></ul></li>
<li><a href="#Transport_sender">Transport sender</a></li>
<li><a href="#Examples">Examples</a>
<ul>
<li><a href="#Enabling_SOAP_over_UDP_at_the_transport_level">Enabling SOAP over UDP at the transport level</a></li></ul></li></ul></li></ul></section><section>
<h3><a name="Transport_listener">Transport listener</a></h3><section>
<h4><a name="Listener_configuration">Listener configuration</a></h4>
<p>The UDP transport listener is configured in <code>axis2.xml</code> using the following declaration:</p>
<div class="source"><pre class="prettyprint">&lt;transportReceiver name=&quot;udp&quot; class=&quot;org.apache.axis2.transport.udp.UDPListener&quot;/&gt;</pre></div>
<p>Depending on how the UDP transport is set up, additional parameters may be required inside the <code>transportReceiver</code> element (see next section).</p></section><section>
<h4><a name="Endpoint_configuration">Endpoint configuration</a></h4>
<p>Endpoints can be configured both at the transport level and at the service level. Each endpoint opens a local UDP port for listening. UDP packets received on a port that is configured on a service will be pre-dispatched to that service. Packets received by a port that is configured at the transport level need to be dispatched using WS-Addressing or some other mechanism implemented by a dispatcher configured in Axis2.</p>
<p>Endpoints are configured by adding <code>parameter</code> elements to the <code>transportReceiver</code> element in <code>axis2.xml</code> or to a <code>service</code> element in an <code>services.xml</code> file. The set of parameters is the same for both scenarios:</p>
<dl>
<dt><code>transport.udp.port</code> (required)</dt>
<dd> Specifies the UDP port to bind to.</dd>
<dt><code>transport.udp.contentType</code> (required)</dt>
<dd> Specifies the content type of the messages received on the endpoint. This parameter is necessary because in contrast to HTTP, the content type information is not part of the information exchanged on the wire.</dd>
<dt><code>transport.udp.maxPacketSize</code> (optional, defaults to 1024)</dt>
<dd> The maximum UDP packet size.</dd></dl></section></section><section>
<h3><a name="Transport_sender">Transport sender</a></h3>
<p>The UDP transport sender can be enabled in <code>axis2.xml</code> using the following declaration:</p>
<div class="source"><pre class="prettyprint">&lt;transportSender name=&quot;udp&quot; class=&quot;org.apache.axis2.transport.udp.UDPSender&quot;/&gt;</pre></div></section><section>
<h3><a name="Examples">Examples</a></h3><section>
<h4><a name="Enabling_SOAP_over_UDP_at_the_transport_level">Enabling SOAP over UDP at the transport level</a></h4>
<p>The following declaration in <code>axis2.xml</code> enables SOAP over UDP on port 3333 and allows all services (for which UDP is in the list of exposed transports) to receive messages over that port:</p>
<div class="source"><pre class="prettyprint">&lt;transportReceiver name=&quot;udp&quot; class=&quot;org.apache.axis2.transport.udp.UDPListener&quot;&gt;
  &lt;parameter name=&quot;transport.udp.port&quot;&gt;3333&lt;/parameter&gt;
  &lt;parameter name=&quot;transport.udp.contentType&quot;&gt;text/xml&lt;/parameter&gt;
  &lt;parameter name=&quot;transport.udp.maxPacketSize&quot;&gt;4096&lt;/parameter&gt;
&lt;/transportReceiver&gt;</pre></div>
<p>For this to work, WS-Addressing must be enabled, and messages sent to port 3333 must have the relevant WS-Addressing headers.</p>
<div class="source"><pre class="prettyprint">&lt;module ref=&quot;addressing&quot;/&gt;</pre></div>
<p>With the configuration shown above, the UDP transport would generate bindings with the following EPR:</p>
<div class="source"><pre class="prettyprint">udp://localhost:3333/axis2/services/Version?contentType=text/xml</pre></div>
<p>The following example shows a message that can be sent to the Version service over UDP:</p>
<div class="source"><pre class="prettyprint">&lt;SOAP-ENV:Envelope xmlns:SOAP-ENV=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;
                   xmlns:wsa=&quot;http://www.w3.org/2005/08/addressing&quot;&gt;
    &lt;SOAP-ENV:Header&gt;
        &lt;wsa:MessageID&gt;1234&lt;/wsa:MessageID&gt;
        &lt;wsa:To&gt;udp://localhost:3333/axis2/services/Version?contentType=text/xml&lt;/wsa:To&gt;
        &lt;wsa:Action&gt;urn:getVersion&lt;/wsa:Action&gt;
    &lt;/SOAP-ENV:Header&gt;
    &lt;SOAP-ENV:Body&gt;
    &lt;/SOAP-ENV:Body&gt;
&lt;/SOAP-ENV:Envelope&gt;</pre></div>
<p>On most Linux/Unix systems (including Mac OS X), the <code>nc</code> utility is available to send UDP messages and can be used to test the transport. To do this, save the message into <code>test-message.xml</code> and execute the following command:</p>
<div class="source"><pre class="prettyprint">nc -u 127.0.0.1 3333 &lt; test-message.xml</pre></div></section></section></section>
        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &copy;2004&#x2013;2021
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
        </div>
        </div>
    </footer>
    </body>
</html>