Author: buildbot
Date: Wed Apr 11 12:57:34 2018
New Revision: 1028234

Log:
Production update by buildbot for cxf

Modified:
    websites/production/cxf/content/cache/docs.pageCache
    websites/production/cxf/content/docs/developing-a-service.html

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

Modified: websites/production/cxf/content/docs/developing-a-service.html
==============================================================================
--- websites/production/cxf/content/docs/developing-a-service.html (original)
+++ websites/production/cxf/content/docs/developing-a-service.html Wed Apr 11 
12:57:34 2018
@@ -32,8 +32,8 @@
 <link type="text/css" rel="stylesheet" 
href="/resources/highlighter/styles/shThemeCXF.css">
 
 <script src='/resources/highlighter/scripts/shCore.js'></script>
-<script src='/resources/highlighter/scripts/shBrushBash.js'></script>
 <script src='/resources/highlighter/scripts/shBrushJava.js'></script>
+<script src='/resources/highlighter/scripts/shBrushBash.js'></script>
 <script>
   SyntaxHighlighter.defaults['toolbar'] = false;
   SyntaxHighlighter.all();
@@ -117,12 +117,12 @@ Apache CXF -- Developing a Service
          <td height="100%">
            <!-- Content -->
            <div class="wiki-content">
-<div id="ConfluenceContent"><style type="text/css">/*<![CDATA[*/
-div.rbtoc1508777344109 {padding: 0px;}
-div.rbtoc1508777344109 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1508777344109 li {margin-left: 0px;padding-left: 0px;}
+<div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/
+div.rbtoc1523451415283 {padding: 0px;}
+div.rbtoc1523451415283 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1523451415283 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1508777344109">
+/*]]>*/</style></p><div class="toc-macro rbtoc1523451415283">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#DevelopingaService-DevelopingaServiceusingJAX-WS">Developing a Service 
using JAX-WS</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#DevelopingaService-WSDLFirstDevelopment">WSDL First Development</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#DevelopingaService-GeneratingtheStartingPointCode">Generating the 
Starting Point Code</a>
@@ -144,77 +144,8 @@ div.rbtoc1508777344109 li {margin-left:
 </li></ul>
 </li></ul>
 </li></ul>
-</div>
-
-<h1 id="DevelopingaService-DevelopingaServiceusingJAX-WS">Developing a Service 
using JAX-WS</h1>
-
-<p>You can develop a service using one of two approaches:</p>
-<ul><li>Start with a WSDL contract and generate Java objects to implement the 
service.</li><li>Start with a Java object and service enable it using 
annotations.</li></ul>
-
-
-<p>For new development the preferred path is to design your services in WSDL 
and then generate the code to implement them. This approach enforces the 
concept that a service is an abstract entity that is implementation neutral. It 
also means you can spend more time working out the exact interface your service 
requires before you start coding.</p>
-
-<p>However, there are many cases where you may need to service enable an 
existing application. While JAX-WS eases the process, it does require that you 
make some changes to source code of your application. You will need to add 
annotations to the source. It also requires that you migrate your code to Java 
5.0.</p>
-
-<h2 id="DevelopingaService-WSDLFirstDevelopment">WSDL First Development</h2>
-
-<p>Using the WSDL first model of service development, you start with a WSDL 
document that defines the service you wish to implement. This WSDL document 
could be obtained from another developer, a system architect, a UDDI registry, 
or you could write it yourself. The document must contain at least a fully 
specified logical interface before you can begin generating code from it.</p>
-
-<p>Once you have a WSDL document, the process for developing a JAX-WS service 
is three steps:</p>
-<ol><li>Generate starting point code.</li><li>Implement the service's 
operations.</li><li>Publish the implemented service.</li></ol>
-
-
-<h3 id="DevelopingaService-GeneratingtheStartingPointCode">Generating the 
Starting Point Code</h3>
-
-<p>JAX-WS specifies a detailed mapping from a service defined in WSDL to the 
Java classes that will implement that service. The logical interface, defined 
by the <code>wsdl:portType</code> element, is mapped to a service endpoint 
interface (SEI). Any complex types defined in the WSDL are mapped into Java 
classes following the mapping defined by the Java Architecture for XML Binding 
(JAXB) specification. The endpoint defined by the <code>wsdl:service</code> 
element is also generated into a Java class that is used by consumers to access 
endpoints implementing the service.</p>
-
-<p>The <strong>wsdl2java</strong> command automates the generation of this 
code. It also provides options for generating starting point code for your 
implementation and an ant based makefile to build the application. 
<strong>wsdl2java</strong> provides a number of arguments for controlling the 
generated code.</p>
-
-<h4 id="DevelopingaService-Runningwsdl2java">Running wsdl2java</h4>
-
-<p>You can generate the code needed to develop your service using the 
following command:<br clear="none">
- wsdl2java -ant -impl -server -d <em>outputDir</em> myService.wsdl</p>
-
-<p> The command does the following:</p>
-<ul><li>The <code>-ant</code> argument generates a Ant makefile, called 
<code>build.xml</code>, for your application.</li><li>The <code>-impl</code> 
argument generates a shell implementation class for each portType element in 
the WSDL document.</li><li>The <code>-server</code> argument generates a simple 
<code>main()</code> to launch your service as a stand alone 
application.</li><li>The <code>-d <em>outputDir</em></code> argument tells 
<strong>wsdl2java</strong> to write the generated code to a directory called 
outputDir.</li><li><code>myService.wsdl</code> is  the WSDL document from which 
code is generated.</li></ul>
-
-
-<h4 id="DevelopingaService-Generatedcode">Generated code</h4>
-
-<p><a shape="rect" href="developing-a-service.html">#Table1</a> describes the 
files generated for creating a service.</p>
-
-<p><span class="confluence-anchor-link" id="DevelopingaService-Table1"></span> 
<strong>Table 1: Generated Classes for a Service</strong></p>
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> File </p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> 
<code><em>portTypeName</em>.java</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> The SEI. This file contains the interface your service 
implements. You should not edit this file. </p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code><em>serviceName</em>.java</code> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The endpoint. 
This file contains the Java class your clients will use to make requests on the 
service. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code><em>portTypeName</em>Impl.java</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> The skeleton implementation class. You 
will modify this file to implement yo
 ur service. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> 
<code><em>portTypeName</em>_<em>portTypeName</em>ImplPort_Server.java</code> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> A basic server 
<code>main()</code> that allows you to deploy your service as a stand alone 
process. </p></td></tr></tbody></table></div>
-
-
-<h3 id="DevelopingaService-ImplementingtheService">Implementing the 
Service</h3>
-
-<p>Once the starting point code is generated, you must provide the business 
logic for each of the operations defined in the service's interface.</p>
-
-<h4 id="DevelopingaService-Generatingtheimplementationcode">Generating the 
implementation code</h4>
-
-<p>You generate the implementation class for your service with 
<strong>wsdl2java</strong>'s <code>-impl</code> flag.</p>
-<div class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Tip</p><span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
-<p>If your service's contract included any custom types defined in XML Schema, 
you will also need to ensure that the classes for the types are also generated 
and available.</p></div></div>
-
-<h4 id="DevelopingaService-Generatedcode.1">Generated code</h4>
-
-<p>The service implementation code consists of two files:</p>
-<ul><li><code><em>portTypeName</em>.java</code> is the service interface(SEI) 
for the service.</li><li><code><em>portTypeName</em>Impl.java</code> is the 
class you will use to implement the operations defined for the 
service.</li></ul>
-
-
-<h4 id="DevelopingaService-Implementtheoperation'slogic">Implement the 
operation's logic</h4>
-
-<p>You provide the business logic for your service's operations by completing 
the stub methods in <code><em>portTypeName</em>Impl.java</code>. For the most 
part, you use standard Java to implement the business logic. If your service 
uses custom XML Schema types, you will need to use the generated classes for 
each type to manipulate them. There are also some CXF specific APIs that you 
can use to access some advanced features.</p>
-
-<h4 id="DevelopingaService-Example">Example</h4>
-
-<p>For example, an implementation class for a service that defined the 
operations <code>sayHi</code> and <code>greetMe</code> may look like the 
following:</p>
-
-<p><span class="confluence-anchor-link" 
id="DevelopingaService-Example1"></span></p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>Implementation of the 
Greeter Service</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-package demo.hw.server;
+</div><h1 id="DevelopingaService-DevelopingaServiceusingJAX-WS">Developing a 
Service using JAX-WS</h1><p>You can develop a service using one of two 
approaches:</p><ul><li>Start with a WSDL contract and generate Java objects to 
implement the service.</li><li>Start with a Java object and service enable it 
using annotations.</li></ul><p>For new development the preferred path is to 
design your services in WSDL and then generate the code to implement them. This 
approach enforces the concept that a service is an abstract entity that is 
implementation neutral. It also means you can spend more time working out the 
exact interface your service requires before you start coding.</p><p>However, 
there are many cases where you may need to service enable an existing 
application. While JAX-WS eases the process, it does require that you make some 
changes to source code of your application. You will need to add annotations to 
the source. It also requires that you migrate your code to Java 5.0.</p><h2
  id="DevelopingaService-WSDLFirstDevelopment">WSDL First 
Development</h2><p>Using the WSDL first model of service development, you start 
with a WSDL document that defines the service you wish to implement. This WSDL 
document could be obtained from another developer, a system architect, a UDDI 
registry, or you could write it yourself. The document must contain at least a 
fully specified logical interface before you can begin generating code from 
it.</p><p>Once you have a WSDL document, the process for developing a JAX-WS 
service is three steps:</p><ol><li>Generate starting point 
code.</li><li>Implement the service's operations.</li><li>Publish the 
implemented service.</li></ol><h3 
id="DevelopingaService-GeneratingtheStartingPointCode">Generating the Starting 
Point Code</h3><p>JAX-WS specifies a detailed mapping from a service defined in 
WSDL to the Java classes that will implement that service. The logical 
interface, defined by the <code>wsdl:portType</code> element, is mapped to a s
 ervice endpoint interface (SEI). Any complex types defined in the WSDL are 
mapped into Java classes following the mapping defined by the Java Architecture 
for XML Binding (JAXB) specification. The endpoint defined by the 
<code>wsdl:service</code> element is also generated into a Java class that is 
used by consumers to access endpoints implementing the service.</p><p>The 
<strong>wsdl2java</strong> command automates the generation of this code. It 
also provides options for generating starting point code for your 
implementation and an ant based makefile to build the application. 
<strong>wsdl2java</strong> provides a number of arguments for controlling the 
generated code.</p><h4 id="DevelopingaService-Runningwsdl2java">Running 
wsdl2java</h4><p>You can generate the code needed to develop your service using 
the following command:<br clear="none"> wsdl2java -ant -impl -server -d 
<em>outputDir</em> myService.wsdl</p><p>The command does the 
following:</p><ul><li>The <code>-ant</code> argumen
 t generates a Ant makefile, called <code>build.xml</code>, for your 
application.</li><li>The <code>-impl</code> argument generates a shell 
implementation class for each portType element in the WSDL 
document.</li><li>The <code>-server</code> argument generates a simple 
<code>main()</code> to launch your service as a stand alone 
application.</li><li>The <code>-d <em>outputDir</em></code> argument tells 
<strong>wsdl2java</strong> to write the generated code to a directory called 
outputDir.</li><li><code>myService.wsdl</code> is the WSDL document from which 
code is generated.</li></ul><h4 id="DevelopingaService-Generatedcode">Generated 
code</h4><p><a shape="rect" href="developing-a-service.html">#Table1</a> 
describes the files generated for creating a service.</p><p><span 
class="confluence-anchor-link" id="DevelopingaService-Table1"></span> 
<strong>Table 1: Generated Classes for a Service</strong></p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowsp
 an="1" class="confluenceTh"><p>File</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code><em>portTypeName</em>.java</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The SEI. This file contains the 
interface your service implements. You should not edit this 
file.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code><em>serviceName</em>.java</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The endpoint. This file 
contains the Java class your clients will use to make requests on the 
service.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code><em>portTypeName</em>Impl.java</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The skeleton implementation 
class. You will modify this file to implement your 
service.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code><em>portTypeNam
 e</em>_<em>portTypeName</em>ImplPort_Server.java</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>A basic server 
<code>main()</code> that allows you to deploy your service as a stand alone 
process.</p></td></tr></tbody></table></div><h3 
id="DevelopingaService-ImplementingtheService">Implementing the 
Service</h3><p>Once the starting point code is generated, you must provide the 
business logic for each of the operations defined in the service's 
interface.</p><h4 
id="DevelopingaService-Generatingtheimplementationcode">Generating the 
implementation code</h4><p>You generate the implementation class for your 
service with <strong>wsdl2java</strong>'s <code>-impl</code> flag.</p><div 
class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Tip</p><span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>If your service's contract 
included any custom typ
 es defined in XML Schema, you will also need to ensure that the classes for 
the types are also generated and available.</p></div></div><h4 
id="DevelopingaService-Generatedcode.1">Generated code</h4><p>The service 
implementation code consists of two 
files:</p><ul><li><code><em>portTypeName</em>.java</code> is the service 
interface(SEI) for the 
service.</li><li><code><em>portTypeName</em>Impl.java</code> is the class you 
will use to implement the operations defined for the service.</li></ul><h4 
id="DevelopingaService-Implementtheoperation'slogic">Implement the operation's 
logic</h4><p>You provide the business logic for your service's operations by 
completing the stub methods in <code><em>portTypeName</em>Impl.java</code>. For 
the most part, you use standard Java to implement the business logic. If your 
service uses custom XML Schema types, you will need to use the generated 
classes for each type to manipulate them. There are also some CXF specific APIs 
that you can use to access some 
 advanced features.</p><h4 id="DevelopingaService-Example">Example</h4><p>For 
example, an implementation class for a service that defined the operations 
<code>sayHi</code> and <code>greetMe</code> may look like the 
following:</p><p><span class="confluence-anchor-link" 
id="DevelopingaService-Example1"></span></p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>Implementation of the Greeter 
Service</b></div><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">package demo.hw.server;
 
 import org.apache.hello_world_soap_http.Greeter;
 
@@ -238,63 +169,16 @@ public class GreeterImpl implements Gree
   }
 }
 </pre>
-</div></div>
-
-<h2 id="DevelopingaService-JavaFirstDevelopment">Java First Development</h2>
-
-<p>To create a service starting from Java you need to do the following:</p>
-<ol><li>Create a Service Endpoint Interface (SEI) that defines the methods you 
wish to expose as a service.
-<div class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Tip</p><span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>You can work directly from a Java 
class, but working from an interface is the recommended approach. Interfaces 
are better for sharing with the developers who will be responsible for 
developing the applications consuming your service. The interface is smaller 
and does not provide any of the service's implementation 
details.</p></div></div></li><li>Add the required annotations to your 
code.</li><li>Generate the WSDL contract for your service.
-<div class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Tip</p><span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>If you intend to use the SEI as 
the service's contract, it is not necessary to generate a WSDL 
contract</p></div></div></li><li>Publish the service.</li></ol>
-
-
-<h3 id="DevelopingaService-CreatingtheSEI">Creating the SEI</h3>
-
-<p>The service endpoint interface (SEI) is the piece of Java code that is 
shared between a service and the consumers that make requests on it. When 
starting with a WSDL contract, the SEI is generated by the code generators. 
However, when starting from Java, it is the up to a developer to create the 
SEI.</p>
-
-<p>There are two basic patterns for creating an SEI:</p>
-<ul><li>Green field development
-<br clear="none" class="atl-forced-newline">
-You are developing a new service from the ground up. When starting fresh, it 
is best to start by creating the SEI first. You can then distribute the SEI to 
any developers that are responsible for implementing the services and consumers 
that use the SEI.
-<div class="confluence-information-macro confluence-information-macro-note"><p 
class="title">Note</p><span class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>The recommended way to do green 
field service development is to start by creating a WSDL contract that defines 
the service and its interfaces.</p></div></div></li><li>Service enablement
-<br clear="none" class="atl-forced-newline">
-In this pattern, you typically have an existing set of functionality that is 
implemented as a Java class and you want to service enable it. This means that 
you will need to do two things:
-       <ol><li>Create an SEI that contains <strong>only</strong> the 
operations that are going to be exposed as part of the service.</li><li>Modify 
the existing Java class so that it implements the SEI.
-<div class="confluence-information-macro confluence-information-macro-note"><p 
class="title">Note</p><span class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>You can add the JAX-WS annotations 
to a Java class, but that is not recommended.</p></div></div></li></ol>
-       </li></ul>
-
-
-<h4 id="DevelopingaService-Writingtheinterface">Writing the interface</h4>
-
-<p>The SEI is a standard Java interface. It defines a set of methods that a 
class will implement. It can also define a number of member fields and 
constants to which the implementing class has access.</p>
-
-<p>In the case of an SEI the methods defined are intended to be mapped to 
operations exposed by a service. The SEI corresponds to a 
<code>wsdl:portType</code> element. The methods defined by the SEI correspond 
to <code>wsdl:operation</code> elements in the <code>wsdl:portType</code> 
element.</p>
-<div class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Tip</p><span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
-<p>JAX-WS defines an annotation that allows you to specify methods that are 
not exposed as part of a service. However, the best practice is to leave such 
methods out of the SEI.</p></div></div>
-<p>The below shows a simple SEI for a stock updating service.</p>
-
-<p><span class="confluence-anchor-link" 
id="DevelopingaService-Example2"></span></p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>Simple SEI</b></div><div 
class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-package org.apache.cxf;
+</div></div><h2 id="DevelopingaService-JavaFirstDevelopment">Java First 
Development</h2><p>To create a service starting from Java you need to do the 
following:</p><ol><li><p>Create a Service Endpoint Interface (SEI) that defines 
the methods you wish to expose as a service.</p><div 
class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Tip</p><span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>You can work directly from a Java 
class, but working from an interface is the recommended approach. Interfaces 
are better for sharing with the developers who will be responsible for 
developing the applications consuming your service. The interface is smaller 
and does not provide any of the service's implementation 
details.</p></div></div></li><li>Add the required annotations to your 
code.</li><li><p>Generate the WSDL contract for your service.</p><div 
class="confluen
 ce-information-macro confluence-information-macro-tip"><p 
class="title">Tip</p><span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>If you intend to use the SEI as 
the service's contract, it is not necessary to generate a WSDL 
contract</p></div></div></li><li>Publish the service.</li></ol><h3 
id="DevelopingaService-CreatingtheSEI">Creating the SEI</h3><p>The service 
endpoint interface (SEI) is the piece of Java code that is shared between a 
service and the consumers that make requests on it. When starting with a WSDL 
contract, the SEI is generated by the code generators. However, when starting 
from Java, it is up to the developer to create the SEI.</p><p>There are two 
basic patterns for creating an SEI:</p><ul><li><p>Green field development <br 
clear="none" class="atl-forced-newline"> You are developing a new service from 
the ground up. When starting fresh, it is best to start by creatin
 g the SEI first. You can then distribute the SEI to any developers that are 
responsible for implementing the services and consumers that use the 
SEI.</p><div class="confluence-information-macro 
confluence-information-macro-note"><p class="title">Note</p><span 
class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>The recommended way to do green 
field service development is to start by creating a WSDL contract that defines 
the service and its interfaces.</p></div></div></li><li>Service enablement <br 
clear="none" class="atl-forced-newline"> In this pattern, you typically have an 
existing set of functionality that is implemented as a Java class and you want 
to service enable it. This means that you will need to do two 
things:<ol><li>Create an SEI that contains <strong>only</strong> the operations 
that are going to be exposed as part of the service.</li><li><p>Modify the 
existing Java class so that
  it implements the SEI.</p><div class="confluence-information-macro 
confluence-information-macro-note"><p class="title">Note</p><span 
class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>You can add the JAX-WS annotations 
to a Java class, but that is not 
recommended.</p></div></div></li></ol></li></ul><h4 
id="DevelopingaService-Writingtheinterface">Writing the interface</h4><p>The 
SEI is a standard Java interface. It defines a set of methods that a class will 
implement. It can also define a number of member fields and constants to which 
the implementing class has access.</p><p>In the case of an SEI the methods 
defined are intended to be mapped to operations exposed by a service. The SEI 
corresponds to a <code>wsdl:portType</code> element. The methods defined by the 
SEI correspond to <code>wsdl:operation</code> elements in the 
<code>wsdl:portType</code> element.</p><div class="confluence-inform
 ation-macro confluence-information-macro-tip"><p class="title">Tip</p><span 
class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>JAX-WS defines an annotation that 
allows you to specify methods that are not exposed as part of a service. 
However, the best practice is to leave such methods out of the 
SEI.</p></div></div><p>The below shows a simple SEI for a stock updating 
service.</p><p><span class="confluence-anchor-link" 
id="DevelopingaService-Example2"></span></p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>Simple SEI</b></div><div 
class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">package org.apache.cxf;
 
 public interface QuoteReporter
 {
   public Quote getQuote(String ticker);
 }
 </pre>
-</div></div>
-
-<h4 id="DevelopingaService-Implementingtheinterface">Implementing the 
interface</h4>
-
-<p>Because the SEI is a standard Java interface, the class that implements it 
is just a standard Java class. If you started with a Java class you will need 
to modify it to implement the interface. If you are starting fresh, the 
implementation class will need to implement the SEI.</p>
-
-<p>The below shows a class for implementing the above interface.</p>
-
-<p><span class="confluence-anchor-link" 
id="DevelopingaService-Example3"></span></p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>Implementation for 
SEI</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-package org.apache.cxf;
+</div></div><h4 id="DevelopingaService-Implementingtheinterface">Implementing 
the interface</h4><p>Because the SEI is a standard Java interface, the class 
that implements it is just a standard Java class. If you started with a Java 
class you will need to modify it to implement the interface. If you are 
starting fresh, the implementation class will need to implement the 
SEI.</p><p>The below shows a class for implementing the above 
interface.</p><p><span class="confluence-anchor-link" 
id="DevelopingaService-Example3"></span></p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>Implementation for SEI</b></div><div 
class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">package org.apache.cxf;
 
 import java.util.*;
 
@@ -305,44 +189,15 @@ public class StockQuoteReporter implemen
   {
     Quote retVal = new Quote();
     retVal.setID(ticker);
-    retVal.setVal(Board.check(ticker));[1]
+    retVal.setVal(Board.check(ticker));
     Date retDate = new Date();
     retVal.setTime(retDate.toString());
-    return(retVal);
+    return retVal;
   }
 }
 </pre>
-</div></div>
-
-<h3 id="DevelopingaService-AnnotatingtheCode">Annotating the Code</h3>
-
-<p>JAX-WS relies on the annotation feature of Java 5. The JAX-WS annotations 
are used to specify the metadata used to map the SEI to a fully specified 
service definition. Among the information provided in the annotations are the 
following:</p>
-<ul><li>The target namespace for the service.</li><li>The name of the class 
used to hold the request message.</li><li>The name of the class used to hold 
the response message.</li><li>If an operation is a one way 
operation.</li><li>The binding style the service uses.</li><li>The name of the 
class used for any custom exceptions.</li><li>The namespaces under which the 
types used by the service are defined.
-<div class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Tip</p><span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Most of the annotations have 
sensible defaults and do not need to be specified. However, the more 
information you provide in the annotations, the better defined your service 
definition. A solid service definition increases the likely hood that all parts 
of a distributed application will work together.</p></div></div></li></ul>
-
-
-<h4 id="DevelopingaService-RequiredAnnotations">Required Annotations</h4>
-
-<p>In order to create a service from Java code you are only required to add 
one annotation to your code. You must add the <code>@WebService()</code> 
annotation on both the SEI and the implementation class.</p>
-
-<h5 id="DevelopingaService-The@WebServiceannotation">The 
<code>@WebService</code> annotation</h5>
-
-<p>The <code>@WebService</code> annotation is defined by the 
<code>javax.jws.WebService</code> interface and it is placed on an interface or 
a class that is intended to be used as a service. <code>@WebService</code> has 
the following properties:</p>
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Property </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Description 
</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> name 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Specifies the 
name of the service interface. This property is mapped to the name attribute of 
the <code>wsdl:portType</code> element that defines the service's interface in 
a WSDL contract. The default is to append <code>PortType</code> to the name of 
the implementation class. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> targetNamespace </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> Specifies the target namespace under which the service 
is defined. If this property is not specified, the target namespace is derived 
from the package name. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> se
 rviceName </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
Specifies the name of the published service. This property is mapped to the 
<code>name</code> attribute of the <code>wsdl:service</code> element that 
defines the published service. The default is to use the name of the service's 
implementation class.  <strong>Note:</strong> Not allowed on the SEI 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
wsdlLocation </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
Specifies the URI at which the service's WSDL contract is stored. The default 
is the URI at which the service is deployed. </p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p> endpointInterface </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Specifies the full name of the SEI that 
the implementation class implements. This property is only used when the 
attribute is used on a service implementation class. <strong>Note:</strong> Not 
allowed on the
  SEI </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
portName </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
Specifies the name of the endpoint at which the service is published. This 
property is mapped to the <code>name</code> attribute of the 
<code>wsdl:port</code> element that specifies the endpoint details for a 
published service. The default is the append <code>Port</code> to the name of 
the service's implementation class. <strong>Note:</strong> Not allowed on the 
SEI </p></td></tr></tbody></table></div>
-
-<div class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Tip</p><span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
-<p>You do not need to provide values for any of the <code>@WebService</code> 
annotation's properties. However, it is recommended that you provide as much 
information as you can.</p></div></div>
-
-<h5 id="DevelopingaService-AnnotatingtheSEI">Annotating the SEI</h5>
-
-<p>The SEI requires that you add the <code>@WebService</code> annotation. 
Since the SEI is the contract that defines the service, you should specify as 
much detail as you can about the service in the <code>@WebService</code> 
annotation's properties.</p>
-
-<p>The code below shows the interface defined <a shape="rect" 
href="developing-a-service.html">above</a> with the <code>@WebService</code> 
annotation.</p>
-
-<p><span class="confluence-anchor-link" 
id="DevelopingaService-Example4"></span></p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>Interface with the 
@WebService Annotation</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-package com.mycompany.demo;
+</div></div><h3 id="DevelopingaService-AnnotatingtheCode">Annotating the 
Code</h3><p>JAX-WS relies on the annotation feature of Java 5. The JAX-WS 
annotations are used to specify the metadata used to map the SEI to a fully 
specified service definition. Among the information provided in the annotations 
are the following:</p><ul><li>The target namespace for the service.</li><li>The 
name of the class used to hold the request message.</li><li>The name of the 
class used to hold the response message.</li><li>If an operation is a one way 
operation.</li><li>The binding style the service uses.</li><li>The name of the 
class used for any custom exceptions.</li><li><p>The namespaces under which the 
types used by the service are defined.</p><div 
class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Tip</p><span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Most of th
 e annotations have sensible defaults and do not need to be specified. However, 
the more information you provide in the annotations, the better defined your 
service definition. A solid service definition increases the likely hood that 
all parts of a distributed application will work 
together.</p></div></div></li></ul><h4 
id="DevelopingaService-RequiredAnnotations">Required Annotations</h4><p>In 
order to create a service from Java code you are only required to add one 
annotation to your code. You must add the <code>@WebService()</code> annotation 
on both the SEI and the implementation class.</p><h5 
id="DevelopingaService-The@WebServiceannotation">The <code>@WebService</code> 
annotation</h5><p>The <code>@WebService</code> annotation is defined by the 
<code>javax.jws.WebService</code> interface and it is placed on an interface or 
a class that is intended to be used as a service. <code>@WebService</code> has 
the following properties:</p><div class="table-wrap"><table class="confluenceTab
 le"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Property</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>name</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies the name of the service interface. This 
property is mapped to the name attribute of the <code>wsdl:portType</code> 
element that defines the service's interface in a WSDL contract. The default is 
to append <code>PortType</code> to the name of the implementation 
class.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>targetNamespace</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies the target namespace under which the service 
is defined. If this property is not specified, the target namespace is derived 
from the package name.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>serviceName</p></td><td colspan="1" rowspan="1" 
class="confluenceT
 d"><p>Specifies the name of the published service. This property is mapped to 
the <code>name</code> attribute of the <code>wsdl:service</code> element that 
defines the published service. The default is to use the name of the service's 
implementation class. <strong>Note:</strong> Not allowed on the 
SEI</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>wsdlLocation</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies the URI at which the service's WSDL contract 
is stored. The default is the URI at which the service is 
deployed.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>endpointInterface</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies the full name of the SEI that the 
implementation class implements. This property is only used when the attribute 
is used on a service implementation class. <strong>Note:</strong> Not allowed 
on the SEI</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>p
 ortName</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Specifies 
the name of the endpoint at which the service is published. This property is 
mapped to the <code>name</code> attribute of the <code>wsdl:port</code> element 
that specifies the endpoint details for a published service. The default is the 
append <code>Port</code> to the name of the service's implementation class. 
<strong>Note:</strong> Not allowed on the 
SEI</p></td></tr></tbody></table></div><div class="confluence-information-macro 
confluence-information-macro-tip"><p class="title">Tip</p><span class="aui-icon 
aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>You do not need to provide values 
for any of the <code>@WebService</code> annotation's properties. However, it is 
recommended that you provide as much information as you can.</p></div></div><h5 
id="DevelopingaService-AnnotatingtheSEI">Annotating the SEI</h5><p>The SEI 
require
 s that you add the <code>@WebService</code> annotation. Since the SEI is the 
contract that defines the service, you should specify as much detail as you can 
about the service in the <code>@WebService</code> annotation's 
properties.</p><p>The code below shows the interface defined <a shape="rect" 
href="developing-a-service.html">above</a> with the <code>@WebService</code> 
annotation.</p><p><span class="confluence-anchor-link" 
id="DevelopingaService-Example4"></span></p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>Interface with the @WebService 
Annotation</b></div><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">package com.mycompany.demo;
 
 import javax.jws.*;
 
@@ -354,21 +209,8 @@ public interface QuoteReporter
   public Quote getQuote(@WebParam(name="ticker") String ticker);
 }
 </pre>
-</div></div>
-<p>The <code>@WebService</code> annotation <a shape="rect" 
href="developing-a-service.html">above</a> does the following:</p>
-<ol><li>Specifies that the value of the name attribute of the 
<code>wsdl:portType</code> element defining the service interface is 
<code>quoteUpdater</code>.</li><li>Specifies that the target namespace of the 
service is <code><a shape="rect" 
href="http://cxf.apache.org";>http://cxf.apache.org</a></code>.</li><li>Specifies
 that the service will use the pre-defined WSDL contract which is published at 
<code><a shape="rect" class="external-link" 
href="http://somewhere.com/quoteExampleService?wsdl"; 
rel="nofollow">http://somewhere.com/quoteExampleService?wsdl</a></code>.</li></ol>
-
-
-<p>The @WebParam annotation is necessary as java interfaces do not store the 
Parameter name in the .class file. So if you leave out the annotation your 
parameter will be named arg0.</p>
-
-<h5 id="DevelopingaService-Annotatingtheserviceimplementation">Annotating the 
service implementation</h5>
-
-<p>In addition to annotating the SEI with the <code>@WebService</code> 
annotation, you also have to annotate the service implementation class with the 
<code>@WebService</code> annotation. When adding the annotation to the service 
implementation class you only need to specify the 
<code>endpointInterface</code> property. As shown in below the property needs 
to be set to the full name of the SEI.</p>
-
-<p><span class="confluence-anchor-link" 
id="DevelopingaService-Example5"></span></p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>Annotated Service 
Implementation Class</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-package org.apache.cxf;
+</div></div><p>The <code>@WebService</code> annotation <a shape="rect" 
href="developing-a-service.html">above</a> does the 
following:</p><ol><li>Specifies that the value of the name attribute of the 
<code>wsdl:portType</code> element defining the service interface is 
<code>quoteUpdater</code>.</li><li>Specifies that the target namespace of the 
service is <code><a shape="rect" 
href="http://cxf.apache.org";>http://cxf.apache.org</a></code>.</li><li>Specifies
 that the service will use the pre-defined WSDL contract which is published at 
<code><a shape="rect" class="external-link" 
href="http://somewhere.com/quoteExampleService?wsdl"; 
rel="nofollow">http://somewhere.com/quoteExampleService?wsdl</a></code>.</li></ol><p>The
 @WebParam annotation is necessary as java interfaces do not store the 
Parameter name in the .class file. So if you leave out the annotation your 
parameter will be named arg0.</p><h5 
id="DevelopingaService-Annotatingtheserviceimplementation">Annotating the 
service implement
 ation</h5><p>In addition to annotating the SEI with the 
<code>@WebService</code> annotation, you also have to annotate the service 
implementation class with the <code>@WebService</code> annotation. When adding 
the annotation to the service implementation class you only need to specify the 
<code>endpointInterface</code> property. As shown in below the property needs 
to be set to the full name of the SEI.</p><p><span 
class="confluence-anchor-link" id="DevelopingaService-Example5"></span></p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>Annotated Service 
Implementation Class</b></div><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">package org.apache.cxf;
 
 import javax.jws.*;
 
@@ -385,33 +227,8 @@ public class StockQuoteReporter implemen
   }
 }
 </pre>
-</div></div>
-
-<h4 id="DevelopingaService-OptionalAnnotations">Optional Annotations</h4>
-
-<p>While the <code>@WebService</code> annotation is sufficient for service 
enabling a Java interface or a Java class, it does not provide a lot of 
information about how the service will be exposed as an endpoint. The JAX-WS 
programming model uses a number of optional annotations for adding details 
about your service, such as the binding it uses, to the Java code. You add 
these annotations to the service's SEI.</p>
-<div class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Tip</p><span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
-<p>The more details you provide in the SEI, the easier it will be for 
developers to implement applications that can use the functionality it defines. 
It will also provide for better generated WSDL contracts.</p></div></div>
-
-<h5 
id="DevelopingaService-DefiningtheBindingPropertieswithAnnotations">Defining 
the Binding Properties with Annotations</h5>
-
-<p>If you are using a SOAP binding for your service, you can use JAX-WS 
annotations to specify a number of the bindings properties. These properties 
correspond directly to the properties you can specify in a service's WSDL 
contract.</p>
-
-<h5 id="DevelopingaService-The@SOAPBindingannotation">The 
<code>@SOAPBinding</code> annotation</h5>
-
-<p>The <code>@SOAPBinding</code> annotation is defined by the 
<code>javax.jws.soap.SOAPBinding</code> interface. It provides details about 
the SOAP binding used by the service when it is deployed. If the 
<code>@SOAPBinding</code> annotation is not specified, a service is published 
using a wrapped doc/literal SOAP binding.</p>
-
-<p>You can put the <code>@SOAPBinding</code> annotation on the SEI and any of 
the SEI's methods. When it is used on a method, setting of the method's 
<code>@SOAPBinding</code> annotation take precedent.</p>
-
-<p>The following table shows the properties for the @SOAPBinding 
annotation.</p>
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Property </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Values </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Description 
</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> style 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>Style.DOCUMENT</code> (default) <br clear="none" 
class="atl-forced-newline">  <code>Style.RPC</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Specifies the style of the SOAP message. 
If <code>RPC</code> style is specified, each message part within the SOAP body 
is a parameter or return value and will appear inside a wrapper element within 
the <code>soap:body</code> element. The message parts within the wrapper 
element correspond to operation parameters and must appear in the same order as 
the parameters in the operation. If <code>DOCUMENT</code> style is
  specified, the contents of the SOAP body must be a valid XML document, but 
its form is not as tightly constrained. </p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p> use </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>Use.LITERAL</code> (default) <br clear="none" 
class="atl-forced-newline">  <code>Use.ENCODED</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Specifies how the data of the SOAP message 
is streamed. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> parameterStyle </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>ParameterStyle.BARE</code><br clear="none" 
class="atl-forced-newline">  <code>ParameterStyle.WRAPPED</code> (default) 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Specifies how the 
method parameters, which correspond to message parts in a WSDL contract, are 
placed into the SOAP message body. A parameter style of <code>BARE</code> means 
that each p
 arameter is placed into the message body as a child element of the message 
root. A parameter style of <code>WRAPPED</code> means that all of the input 
parameters are wrapped into a single element on a request message and that all 
of the output parameters are wrapped into a single element in the response 
message. If you set the style to RPC you must use the <code>WRAPPED</code> 
parameter style. </p></td></tr></tbody></table></div>
-
-<p>An SEI that uses rpc/literal SOAP messages is as follows:</p>
-
-<p><span class="confluence-anchor-link" 
id="DevelopingaService-Example6"></span></p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>Specifying an RPC/LITERAL 
SOAP Binding</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-package org.eric.demo;
+</div></div><h4 id="DevelopingaService-OptionalAnnotations">Optional 
Annotations</h4><p>While the <code>@WebService</code> annotation is sufficient 
for service enabling a Java interface or a Java class, it does not provide a 
lot of information about how the service will be exposed as an endpoint. The 
JAX-WS programming model uses a number of optional annotations for adding 
details about your service, such as the binding it uses, to the Java code. You 
add these annotations to the service's SEI.</p><div 
class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Tip</p><span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>The more details you provide in 
the SEI, the easier it will be for developers to implement applications that 
can use the functionality it defines. It will also provide for better generated 
WSDL contracts.</p></div></div><h5 id="DevelopingaService
 -DefiningtheBindingPropertieswithAnnotations">Defining the Binding Properties 
with Annotations</h5><p>If you are using a SOAP binding for your service, you 
can use JAX-WS annotations to specify a number of the bindings properties. 
These properties correspond directly to the properties you can specify in a 
service's WSDL contract.</p><h5 
id="DevelopingaService-The@SOAPBindingannotation">The <code>@SOAPBinding</code> 
annotation</h5><p>The <code>@SOAPBinding</code> annotation is defined by the 
<code>javax.jws.soap.SOAPBinding</code> interface. It provides details about 
the SOAP binding used by the service when it is deployed. If the 
<code>@SOAPBinding</code> annotation is not specified, a service is published 
using a wrapped doc/literal SOAP binding.</p><p>You can put the 
<code>@SOAPBinding</code> annotation on the SEI and any of the SEI's methods. 
When it is used on a method, setting of the method's <code>@SOAPBinding</code> 
annotation take precedent.</p><p>The following table shows t
 he properties for the @SOAPBinding annotation.</p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Property</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Values</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>style</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Style.DOCUMENT</code> (default) <br clear="none" 
class="atl-forced-newline"> <code>Style.RPC</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Specifies the style of the SOAP message. If 
<code>RPC</code> style is specified, each message part within the SOAP body is 
a parameter or return value and will appear inside a wrapper element within the 
<code>soap:body</code> element. The message parts within the wrapper element 
correspond to operation parameters and must appear in the same order as the 
parameters in the operat
 ion. If <code>DOCUMENT</code> style is specified, the contents of the SOAP 
body must be a valid XML document, but its form is not as tightly 
constrained.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>use</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Use.LITERAL</code> (default) <br clear="none" 
class="atl-forced-newline"> <code>Use.ENCODED</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Specifies how the data of the SOAP message 
is streamed.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>parameterStyle</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>ParameterStyle.BARE</code><br clear="none" 
class="atl-forced-newline"> <code>ParameterStyle.WRAPPED</code> 
(default)</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Specifies 
how the method parameters, which correspond to message parts in a WSDL 
contract, are placed into the SOAP message body. A parameter style of 
<code>BARE<
 /code> means that each parameter is placed into the message body as a child 
element of the message root. A parameter style of <code>WRAPPED</code> means 
that all of the input parameters are wrapped into a single element on a request 
message and that all of the output parameters are wrapped into a single element 
in the response message. If you set the style to RPC you must use the 
<code>WRAPPED</code> parameter style.</p></td></tr></tbody></table></div><p>An 
SEI that uses rpc/literal SOAP messages is as follows:</p><p><span 
class="confluence-anchor-link" id="DevelopingaService-Example6"></span></p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>Specifying an RPC/LITERAL 
SOAP Binding</b></div><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">package org.eric.demo;
 
 import javax.jws.*;
 import javax.jws.soap.*;
@@ -424,65 +241,8 @@ public interface QuoteReporter
   ...
 }
 </pre>
-</div></div>
-
-<h5 
id="DevelopingaService-DefiningOperationPropertieswithAnnotations">Defining 
Operation Properties with Annotations</h5>
-
-<p>When the runtime maps your Java method definitions into XML operation 
definitions it fills in details such as:</p>
-<ul><li>what the exchanged messages look like in XML.</li><li>if the message 
can be optimized as a one way message.</li><li>the namespaces where the 
messages are defined.</li></ul>
-
-
-<h5 id="DevelopingaService-The@WebMethodannotation">The 
<code>@WebMethod</code> annotation</h5>
-
-<p> The <code>@WebMethod</code> annotation is defined by the 
<code>javax.jws.WebMethod</code> interface. It is placed on the methods in the 
SEI. The <code>@WebMethod</code> annotation provides the information that is 
normally represented in the <code>wsdl:operation</code> element describing the 
operation to which the method is associated.</p>
-
-<p>The following table describes the properties of the <code>@WebMethod</code> 
annotation.</p>
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Property </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Description 
</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
operationName </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
Specifies the value of the associated <code>wsdl:operation</code> element's 
name. The default value is the name of the method. </p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> action </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> Specifies the value of the 
<code>soapAction</code> attribute of the <code>soap:operation</code> element 
generated for the method. The default value is an empty string. 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> exclude 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Specifies if the 
method should be excluded from the service interface. T
 he default is <code>false</code>. </p></td></tr></tbody></table></div>
-
-
-<h5 id="DevelopingaService-The@RequestWrapperannotation">The 
<code>@RequestWrapper</code> annotation</h5>
-
-<p> The <code>@RequestWrapper</code> annotation is defined by the 
<code>javax.xml.ws.RequestWrapper</code> interface. It is placed on the methods 
in the SEI. As the name implies, <code>@RequestWrapper</code> specifies the 
Java class that implements the wrapper bean for the method parameters that are 
included in the request message sent in a remote invocation. It is also used to 
specify the element names, and namespaces, used by the runtime when marshalling 
and unmarshalling the request messages.</p>
-
-<p>The following table describes the properties of the @RequestWrapper 
annotation.</p>
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Property </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Description 
</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
localName </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
Specifies the local name of the wrapper element in the XML representation of 
the request message. The default value is the name of the method or the value 
of the <code>@WebMethod</code> annotation's <code>operationName</code> 
property. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> targetNamespace </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> Specifies the namespace under which the XML wrapper 
element is defined. The default value is the target namespace of the SEI. 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
className </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p
 > Specifies the full name of the Java class that implements the wrapper 
 > element. </p></td></tr></tbody></table></div>
-
-<div class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Tip</p><span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
-<p>Only the <code>className</code> property is required.</p></div></div>
-
-<h5 id="DevelopingaService-The@ResponseWrapperannotation">The 
<code>@ResponseWrapper</code> annotation</h5>
-
-<p>The <code>@ResponseWrapper</code> annotation is defined by the 
<code>javax.xml.ws.ResponseWrapper</code> interface. It is placed on the 
methods in the SEI. As the name implies, <code>@ResponseWrapper</code> 
specifies the Java class that implements the wrapper bean for the method 
parameters that are included in the response message sent in a remote 
invocation. It is also used to specify the element names, and namespaces, used 
by the runtime when marshalling and unmarshalling the response messages.</p>
-
-<p>The following table describes the properties of the 
<code>@ResponseWrapper</code> annotation.</p>
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Property </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Description 
</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
localName </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
Specifies the local name of the wrapper element in the XML representation of 
the response message. The default value is the name of the method with 
<code>Response</code> appended or the value of the <code>@WebMethod</code> 
annotation's <code>operationName</code> property with <code>Response</code> 
appended. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> targetNamespace </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> Specifies the namespace under which the XML wrapper 
element is defined. The default value is the target namespace of the SEI. 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><
 p> className </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
Specifies the full name of the Java class that implements the wrapper element. 
</p></td></tr></tbody></table></div>
-
-<div class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Tip</p><span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
-<p>Only the <code>className</code> property is required.</p></div></div>
-
-<h5 id="DevelopingaService-The@WebFaultannotation">The <code>@WebFault</code> 
annotation</h5>
-
-<p>The <code>@WebFault</code> annotation is defined by the 
<code>javax.xml.ws.WebFault</code> interface. It is placed on exceptions that 
are thrown by your SEI. The <code>@WebFault</code> annotation is used to map 
the Java exception to a <code>wsdl:fault</code> element. This information is 
used to marshall the exceptions into a representation that can be processed by 
both the service and its consumers.</p>
-
-<p>The following table describes the properties of the <code>@WebFault</code> 
annotation.</p>
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Property </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Description 
</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> name 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Specifies the 
local name of the fault element. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> targetNamespace </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> Specifies the namespace under which the fault element 
is defined. The default value is the target namespace of the SEI. 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
faultName </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
Specifies the full name of the Java class that implements the exception. 
</p></td></tr></tbody></table></div>
-
-<div class="confluence-information-macro confluence-information-macro-note"><p 
class="title">Important</p><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
-<p>The <code>name</code> property is required.<br clear="none">
-FixMe: <code>faultName</code> is defined as <code>beanName</code> by the Sun 
Java EE 5 SDK at <a shape="rect" class="external-link" 
href="http://java.sun.com/javaee/5/docs/api/javax/xml/ws/WebFault.html"; 
rel="nofollow">http://java.sun.com/javaee/5/docs/api/javax/xml/ws/WebFault.html</a>.</p></div></div>
-
-<h5 id="DevelopingaService-The@Onewayannotation">The <code>@Oneway</code> 
annotation</h5>
-
-<p>The <code>@Oneway</code> annotation is defined by the 
<code>javax.jws.Oneway</code> interface. It is placed on the methods in the SEI 
that will not require a response from the service. The <code>@Oneway</code> 
annotation tells the run time that it can optimize the execution of the method 
by not waiting for a response and not reserving any resources to process a 
response.</p>
-
-<h5 id="DevelopingaService-Example.1">Example</h5>
-
-<p>The below shows an SEI whose methods are annotated.</p>
-
-<p><span class="confluence-anchor-link" 
id="DevelopingaService-Example7"></span></p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>SEI with Annotated 
Methods</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-package org.apache.cxf;
+</div></div><h5 
id="DevelopingaService-DefiningOperationPropertieswithAnnotations">Defining 
Operation Properties with Annotations</h5><p>When the runtime maps your Java 
method definitions into XML operation definitions it fills in details such 
as:</p><ul><li>what the exchanged messages look like in XML.</li><li>if the 
message can be optimized as a one way message.</li><li>the namespaces where the 
messages are defined.</li></ul><h5 
id="DevelopingaService-The@WebMethodannotation">The <code>@WebMethod</code> 
annotation</h5><p>The <code>@WebMethod</code> annotation is defined by the 
<code>javax.jws.WebMethod</code> interface. It is placed on the methods in the 
SEI. The <code>@WebMethod</code> annotation provides the information that is 
normally represented in the <code>wsdl:operation</code> element describing the 
operation to which the method is associated.</p><p>The following table 
describes the properties of the <code>@WebMethod</code> annotation.</p><div 
class="table-wrap"><table cla
 ss="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Property</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>operationName</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Specifies the value of the associated 
<code>wsdl:operation</code> element's name. The default value is the name of 
the method.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>action</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies the value of the <code>soapAction</code> 
attribute of the <code>soap:operation</code> element generated for the method. 
The default value is an empty string.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>exclude</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies if the method should be excluded from the 
service interface. The default is <code>false</code>.</p></td></tr></
 tbody></table></div><h5 
id="DevelopingaService-The@RequestWrapperannotation">The 
<code>@RequestWrapper</code> annotation</h5><p>The <code>@RequestWrapper</code> 
annotation is defined by the <code>javax.xml.ws.RequestWrapper</code> 
interface. It is placed on the methods in the SEI. As the name implies, 
<code>@RequestWrapper</code> specifies the Java class that implements the 
wrapper bean for the method parameters that are included in the request message 
sent in a remote invocation. It is also used to specify the element names, and 
namespaces, used by the runtime when marshalling and unmarshalling the request 
messages.</p><p>The following table describes the properties of the 
@RequestWrapper annotation.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Property</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>localName</p></
 td><td colspan="1" rowspan="1" class="confluenceTd"><p>Specifies the local 
name of the wrapper element in the XML representation of the request message. 
The default value is the name of the method or the value of the 
<code>@WebMethod</code> annotation's <code>operationName</code> 
property.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>targetNamespace</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies the namespace under which the XML wrapper 
element is defined. The default value is the target namespace of the 
SEI.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>className</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies the full name of the Java class that 
implements the wrapper element.</p></td></tr></tbody></table></div><div 
class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Tip</p><span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-ma
 cro-icon"></span><div class="confluence-information-macro-body"><p>Only the 
<code>className</code> property is required.</p></div></div><h5 
id="DevelopingaService-The@ResponseWrapperannotation">The 
<code>@ResponseWrapper</code> annotation</h5><p>The 
<code>@ResponseWrapper</code> annotation is defined by the 
<code>javax.xml.ws.ResponseWrapper</code> interface. It is placed on the 
methods in the SEI. As the name implies, <code>@ResponseWrapper</code> 
specifies the Java class that implements the wrapper bean for the method 
parameters that are included in the response message sent in a remote 
invocation. It is also used to specify the element names, and namespaces, used 
by the runtime when marshalling and unmarshalling the response 
messages.</p><p>The following table describes the properties of the 
<code>@ResponseWrapper</code> annotation.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Property</p></th><th colspan
 ="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>localName</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Specifies the local name of the 
wrapper element in the XML representation of the response message. The default 
value is the name of the method with <code>Response</code> appended or the 
value of the <code>@WebMethod</code> annotation's <code>operationName</code> 
property with <code>Response</code> appended.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>targetNamespace</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Specifies the namespace under which the XML 
wrapper element is defined. The default value is the target namespace of the 
SEI.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>className</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies the full name of the Java class that 
implements the wrapper element.</p></td
 ></tr></tbody></table></div><div class="confluence-information-macro 
 >confluence-information-macro-tip"><p class="title">Tip</p><span 
 >class="aui-icon aui-icon-small aui-iconfont-approve 
 >confluence-information-macro-icon"></span><div 
 >class="confluence-information-macro-body"><p>Only the <code>className</code> 
 >property is required.</p></div></div><h5 
 >id="DevelopingaService-The@WebFaultannotation">The <code>@WebFault</code> 
 >annotation</h5><p>The <code>@WebFault</code> annotation is defined by the 
 ><code>javax.xml.ws.WebFault</code> interface. It is placed on exceptions that 
 >are thrown by your SEI. The <code>@WebFault</code> annotation is used to map 
 >the Java exception to a <code>wsdl:fault</code> element. This information is 
 >used to marshall the exceptions into a representation that can be processed 
 >by both the service and its consumers.</p><p>The following table describes 
 >the properties of the <code>@WebFault</code> annotation.</p><div 
 >class="table-wrap"><table class="confluenceTable"><
 tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Property</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>name</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies the local name of the fault 
element.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>targetNamespace</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies the namespace under which the fault element 
is defined. The default value is the target namespace of the 
SEI.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>faultName</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies the full name of the Java class that 
implements the exception.</p></td></tr></tbody></table></div><div 
class="confluence-information-macro confluence-information-macro-note"><p 
class="title">Important</p><span class="aui-icon aui-icon-small 
aui-iconfont-warni
 ng confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>The <code>name</code> property is 
required.<br clear="none"> FixMe: <code>faultName</code> is defined as 
<code>beanName</code> by the Sun Java EE 5 SDK at <a shape="rect" 
class="external-link" 
href="http://java.sun.com/javaee/5/docs/api/javax/xml/ws/WebFault.html"; 
rel="nofollow">http://java.sun.com/javaee/5/docs/api/javax/xml/ws/WebFault.html</a>.</p></div></div><h5
 id="DevelopingaService-The@Onewayannotation">The <code>@Oneway</code> 
annotation</h5><p>The <code>@Oneway</code> annotation is defined by the 
<code>javax.jws.Oneway</code> interface. It is placed on the methods in the SEI 
that will not require a response from the service. The <code>@Oneway</code> 
annotation tells the run time that it can optimize the execution of the method 
by not waiting for a response and not reserving any resources to process a 
response.</p><h5 id="DevelopingaService-Example.1">Example</h5><p>The below 
shows
  an SEI whose methods are annotated.</p><p><span 
class="confluence-anchor-link" id="DevelopingaService-Example7"></span></p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>SEI with Annotated 
Methods</b></div><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">package org.apache.cxf;
 
 import javax.jws.*;
 import javax.xml.ws.*;
@@ -498,36 +258,8 @@ public interface QuoteReporter
   public Quote getQuote(String ticker);
 }
 </pre>
-</div></div>
-
-<h5 
id="DevelopingaService-DefiningParameterPropertieswithAnnotations">Defining 
Parameter Properties with Annotations</h5>
-
-<p>The method parameters in the SEI correspond to the 
<code>wsdl:message</code> elements and their <code>wsdl:part</code> elements. 
JAX-WS provides annotations that allow you to describe the 
<code>wsdl:part</code> elements that are generated for the method 
parameters.</p>
-
-<h5 id="DevelopingaService-The@WebParamannotation">The <code>@WebParam</code> 
annotation</h5>
-
-<p>The <code>@WebParam</code> annotation is defined by the 
<code>javax.jws.WebParam</code> interface. It is placed on the parameters on 
the methods defined in the SEI. The <code>@WebParam</code> annotation allows 
you to specify the direction of the parameter, if the parameter will be placed 
in the SOAP header, and other properties of the generated 
<code>wsdl:part</code>.</p>
-
-<p>The following table describes the properties of the <code>@WebParam</code> 
annotation.</p>
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Property </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Values </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Description 
</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> name 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> Specifies the name of the 
parameter as it appears in the WSDL. For RPC bindings, this is name of the 
<code>wsdl:part</code> representing the parameter. For document bindings, this 
is the local name of the XML element representing the parameter. Per the JAX-WS 
specification, the default is <em>argN</em>, where <em>N</em> is replaced with 
the zero-based argument index (i.e., <em>arg0</em>, <em>arg1</em>, etc.) 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
targetNamespace </p></td><td colspan="
 1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Specifies the namespace for the parameter. 
It is only used with document bindings where the parameter maps to an XML 
element. The defaults is to use the service's namespace. </p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> mode </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>Mode.IN</code> (default) <br 
clear="none" class="atl-forced-newline">  <code>Mode.OUT</code><br clear="none" 
class="atl-forced-newline">  <code>Mode.INOUT</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Specifies the direction of the parameter. 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> header 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>false</code> (default) <br clear="none" class="atl-forced-newline">  
<code>true</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
Specifies i
 f the parameter is passed as part of the SOAP header. </p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> partName </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Specifies the value of the name attribute 
of the <code>wsdl:part</code> element for the parameter when the binding is 
document. </p></td></tr></tbody></table></div>
-
-
-<h5 id="DevelopingaService-The@WebResultannotation">The 
<code>@WebResult</code> annotation</h5>
-
-<p>The <code>@WebResult</code> annotation is defined by the 
<code>javax.jws.WebResult</code> interface. It is placed on the methods defined 
in the SEI. The <code>@WebResult</code> annotation allows you to specify the 
properties of the generated <code>wsdl:part</code> that is generated for the 
method's return value.</p>
-
-<p>The following table describes the properties of the <code>@WebResult</code> 
annotation.</p>
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Property </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Description 
</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> name 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Specifies the 
name of the return value as it appears in the WSDL. For RPC bindings, this is 
name of the <code>wsdl:part</code> representing the return value. For document 
bindings, this is the local name of the XML element representing the return 
value. The default value is return. </p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p> targetNamespace </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Specifies the namespace for the return 
value. It is only used with document bindings where the return value maps to an 
XML element. The defaults is to use the service's namespace. 
</p></td></tr><tr><td colspan="1" rowspan="1"
  class="confluenceTd"><p> header </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> Specifies if the return value is passed as part of the 
SOAP header. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> partName </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> Specifies the value of the name attribute of the 
<code>wsdl:part</code> element for the return value when the binding is 
document. </p></td></tr></tbody></table></div>
-
-
-<h5 id="DevelopingaService-Example.2">Example</h5>
-
-<p>The next example shows an SEI that is fully annotated.</p>
-
-<p><span class="confluence-anchor-link" 
id="DevelopingaService-Example8"></span></p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>Fully Annotated 
SEI</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-package org.apache.cxf;
+</div></div><h5 
id="DevelopingaService-DefiningParameterPropertieswithAnnotations">Defining 
Parameter Properties with Annotations</h5><p>The method parameters in the SEI 
correspond to the <code>wsdl:message</code> elements and their 
<code>wsdl:part</code> elements. JAX-WS provides annotations that allow you to 
describe the <code>wsdl:part</code> elements that are generated for the method 
parameters.</p><h5 id="DevelopingaService-The@WebParamannotation">The 
<code>@WebParam</code> annotation</h5><p>The <code>@WebParam</code> annotation 
is defined by the <code>javax.jws.WebParam</code> interface. It is placed on 
the parameters on the methods defined in the SEI. The <code>@WebParam</code> 
annotation allows you to specify the direction of the parameter, if the 
parameter will be placed in the SOAP header, and other properties of the 
generated <code>wsdl:part</code>.</p><p>The following table describes the 
properties of the <code>@WebParam</code> annotation.</p><div 
class="table-wrap"><tab
 le class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Property</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Values</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>name</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies the name of the parameter as it appears in 
the WSDL. For RPC bindings, this is name of the <code>wsdl:part</code> 
representing the parameter. For document bindings, this is the local name of 
the XML element representing the parameter. Per the JAX-WS specification, the 
default is <em>argN</em>, where <em>N</em> is replaced with the zero-based 
argument index (i.e., <em>arg0</em>, <em>arg1</em>, etc.)</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>targetNamespace</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&
 #160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Specifies 
the namespace for the parameter. It is only used with document bindings where 
the parameter maps to an XML element. The defaults is to use the service's 
namespace.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>mode</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Mode.IN</code> (default) <br clear="none" 
class="atl-forced-newline"> <code>Mode.OUT</code><br clear="none" 
class="atl-forced-newline"> <code>Mode.INOUT</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Specifies the direction of the 
parameter.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>header</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>false</code> (default) <br clear="none" 
class="atl-forced-newline"> <code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Specifies if the parameter is passed as 
part of the SOAP header.</p
 ></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>partName</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>Specifies the value of the name attribute of the 
 ><code>wsdl:part</code> element for the parameter when the binding is 
 >document.</p></td></tr></tbody></table></div><h5 
 >id="DevelopingaService-The@WebResultannotation">The <code>@WebResult</code> 
 >annotation</h5><p>The <code>@WebResult</code> annotation is defined by the 
 ><code>javax.jws.WebResult</code> interface. It is placed on the methods 
 >defined in the SEI. The <code>@WebResult</code> annotation allows you to 
 >specify the properties of the generated <code>wsdl:part</code> that is 
 >generated for the method's return value.</p><p>The following table describes 
 >the properties of the <code>@WebResult</code> annotation.</p><div 
 >class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
 >rowspan="1" class="confluenceTh"><p>Prop
 erty</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>name</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies the name of the return value as it appears in 
the WSDL. For RPC bindings, this is name of the <code>wsdl:part</code> 
representing the return value. For document bindings, this is the local name of 
the XML element representing the return value. The default value is 
return.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>targetNamespace</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies the namespace for the return value. It is 
only used with document bindings where the return value maps to an XML element. 
The defaults is to use the service's namespace.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>header</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Specifies if the return value is passed as
  part of the SOAP header.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>partName</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies the value of the name attribute of the 
<code>wsdl:part</code> element for the return value when the binding is 
document.</p></td></tr></tbody></table></div><h5 
id="DevelopingaService-Example.2">Example</h5><p>The next example shows an SEI 
that is fully annotated.</p><p><span class="confluence-anchor-link" 
id="DevelopingaService-Example8"></span></p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>Fully Annotated SEI</b></div><div 
class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">package org.apache.cxf;
 
 import javax.jws.*;
 import javax.xml.ws.*;
@@ -554,20 +286,8 @@ public interface QuoteReporter
   );
 }
 </pre>
-</div></div>
-
-<h3 id="DevelopingaService-GeneratingWSDL">Generating WSDL</h3>
-
-<p>Once you have annotated your code, you can generate a WSDL contract for 
your service using the <strong>java2wsdl</strong> command.</p>
-
-<h4 id="DevelopingaService-Example.3">Example</h4>
-
-<p>The next example shows the WSDL contract generated for the SEI shown <a 
shape="rect" href="developing-a-service.html">above</a>:</p>
-
-<p><span class="confluence-anchor-link" 
id="DevelopingaService-Example9"></span></p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>Generated WSDL from an 
SEI</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
-&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+</div></div><h3 id="DevelopingaService-GeneratingWSDL">Generating 
WSDL</h3><p>Once you have annotated your code, you can generate a WSDL contract 
for your service using the <strong>java2wsdl</strong> command.</p><h4 
id="DevelopingaService-Example.3">Example</h4><p>The next example shows the 
WSDL contract generated for the SEI shown <a shape="rect" 
href="developing-a-service.html">above</a>:</p><p><span 
class="confluence-anchor-link" id="DevelopingaService-Example9"></span></p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>Generated WSDL from an 
SEI</b></div><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
 &lt;wsdl:definitions targetNamespace="http://demo.eric.org/";
     xmlns:tns="http://demo.eric.org/";
     xmlns:ns1=""


Reply via email to