<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements. See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership. The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License. You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied. See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content=
"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />
<meta http-equiv="content-type" content="" />
<title>Maven2 WSDL2Code Plug-in Guide</title>
<link href="../../../css/axis-docs.css" rel="stylesheet" type=
"text/css" media="all" />
</head>
<body>
<h1>Maven2 WSDL2Code Plug-in Guide</h1>
<h2>Introduction</h2>
<p>This plugin takes as input a WSDL and generates client and
server stubs for calling or implementing a Web service matching the
WSDL.</p>
<p><a href="http://ws.apache.org/axis2/tools/index.html" target=
"_blank">[Download Plugin Tool]</a></p>
<h2>Goals</h2>
<p>The WSDl2Code offers a single goal:</p>
<ul>
<li>wsdl2code (default): Reads the WSDL and generates code.</li>
</ul>
<p>To run the plugin, add the following section to your <a href=
"http://maven.apache.org/guides/introduction/introduction-to-the-pom.html">
POM</a> (Project Object Model):</p>
<pre>
    &lt;build&gt;
    	&lt;plugins&gt;
    		&lt;plugin&gt;
    			&lt;groupId&gt;org.apache.axis2&lt;/groupId&gt;
    			&lt;artifactId&gt;axis2-wsdl2code-maven-plugin&lt;/artifactId&gt;
				&lt;version&gt;1.4&lt;/version&gt;
    			&lt;executions&gt;
    				&lt;execution&gt;
    					&lt;goals&gt;
    						&lt;goal&gt;wsdl2code&lt;/goal&gt;
    					&lt;/goals&gt;
    				&lt;configuration&gt;
					&lt;packageName&gt;com.foo.myservice&lt;/packageName&gt;
					&lt;wsdlFile&gt;src/main/wsdl/myservice.wsdl&lt;/wsdlFile&gt;
					&lt;databindingName&gt;xmlbeans&lt;/databindingName&gt;
				&lt;/configuration&gt;
				&lt;/execution&gt;
			&lt;/executions&gt;
    		&lt;/plugin&gt;
    	&lt;/plugins&gt;
    &lt;/build&gt;
</pre>
Also please add axis2 jars as a dependency 
<pre xml:space="preserve">
    &lt;dependency&gt;
          &lt;groupId&gt;org.apache.axis2&lt;/groupId&gt;
          &lt;artifactId&gt;axis2&lt;/artifactId&gt;
          &lt;version&gt;1.4&lt;/version&gt;
    &lt;/dependency&gt;
</pre>
    
<p>The plugin will be invoked automatically in the generate-sources
phase. You can also invoke it directly from the command line by
running the command</p>
<pre>
mvn axis2-wsdl2code:wsdl2code
</pre>
<h3>The WSDL2Code Goal</h3>
<p>By default, the plugin reads the file
<strong>src/main/axis2/service.wsdl</strong>. Sources for the Java
programming language and the ADB data binding are generated into
<strong>target/generated-sources/axis2/wsdl2code</strong>. Note the
configuration element <strong>packageName</strong> above, which
sets the package name, thus a subdirectory.</p>
<h2>Configuration</h2>
<p>The WSDL2Code goal takes the following parameters as input. All
parameters can be set from the command line by using properties.
For example, the parameter "generateServerSide" may be set using
the property "axis2.wsdl2code.generateServerSide". If the parameter
isn't set via property or in the POM, then a default value
applies.</p>
<table border="2">
<tbody>
<tr align="center">
<td><strong>Parameter Name</strong></td>
<td><strong>Command Line Property</strong></td>
<td><strong>Description</strong></td>
<td><strong>Default Value</strong></td>
</tr>
<tr>
<td>databindingName</td>
<td>${axis2.wsdl2code.databindingName}</td>
<td>Data binding framework, which is being used by the generated
sources.</td>
<td>adb</td>
</tr>
<tr>
<td>generateAllClasses</td>
<td>${axis2.wsdl2code.generateAllClasses}</td>
<td>Whether to generate simply all classes. This is only valid in
conjunction with "generateServerSide".</td>
<td>false</td>
</tr>
<tr>
<td>generateServerSide</td>
<td>${axis2.wsdl2code.generateServerSide}</td>
<td>Whether server side sources are being generated.</td>
<td>false</td>
</tr>
<tr>
<td>generateServerSideInterface</td>
<td>${axis2.wsdl2code.generateServerSideInterface}</td>
<td>Whether to generate the server side interface.</td>
<td>false</td>
</tr>
<tr>
<td>generateServicesXml</td>
<td>${axis2.wsdl2code.generateServicesXml}</td>
<td>Whether a "services.xml" file is being generated.</td>
<td>false</td>
</tr>
<tr>
<td>generateTestcase</td>
<td>${axis2.wsdl2code.generateTestCase}</td>
<td>Whether a test case is being generated.</td>
<td>false</td>
</tr>
<tr>
<td>language</td>
<td>${axis2.wsdl2code.language}</td>
<td>Programming language of the generated sources.</td>
<td>java</td>
</tr>
<tr>
<td>namespaceToPackages</td>
<td>${axis2.wsdl2code.namespaceToPackages}</td>
<td>Map of namespace URI to packages in the format
uri1=package1,uri2=package2,... Using this parameter is
discouraged. In general, you should use the namespaceUris
parameter. However, the latter cannot be set on the command
line.</td>
<td></td>
</tr>
<tr>
<td>namespaceURIs</td>
<td></td>
<td>Map of namespace URI to packages. Example:
&lt;namespaceURIs&gt; &lt;namespaceURI&gt;
&lt;uri&gt;uri1&lt;/uri&gt; &lt;packageName&gt;package1&lt;/packageName&gt;
&lt;/namespaceURI&gt; ........ &lt;/namespaceURI&gt;</td>
<td></td>
</tr>
<tr>
<td>outputDirectory</td>
<td>${axis2.wsdl2code.target}</td>
<td>Target directory, where sources are being
target/generated-sources/axis2/wsdl2code generated.</td>
<td></td>
</tr>
<tr>
<td>packageName</td>
<td>${axis2.wsdl2code.package}</td>
<td>Package name of the generated sources.</td>
<td></td>
</tr>
<tr>
<td>portName</td>
<td>${axis2.wsdl2code.portName}</td>
<td>Port name, for which sources are being generated. By default,
sources are generated for a randomly picked port.</td>
<td></td>
</tr>
    <tr>
    <td>allPorts</td>
    <td>${axis2.wsdl2code.allPorts}</td>
    <td>Set this to true to generate code for all ports.</td>
    <td>false</td>
    </tr>
<tr>
<td>serviceName</td>
<td>${axis2.wsdl2code.serviceName}</td>
<td>Service name, for which sources are being generated. By
default, sources are generated for all services.</td>
<td></td>
</tr>
<tr>
<td>syncMode</td>
<td>${axis2.wsdl2code.syncMode}</td>
<td>Sync mode, for which sources are being generated; either of
"sync", "async", or "both" (default).</td>
<td>both</td>
</tr>
<tr>
<td>unpackClasses</td>
<td>${axis2.wsdl2code.unpackClasses}</td>
<td>Whether to unpack classes.</td>
<td></td>
</tr>
<tr>
<td>wsdlFile</td>
<td>${axis2.wsdl2code.wsdl}</td>
<td>Location of the WSDL file, which is read as input</td>
<td>src/main/axis2/service.wsdl</td>
</tr>
</tbody>
</table>
</body>
</html>
