<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.9.2 at 2021-08-01 
 | Rendered using Apache Maven Fluido Skin 1.6
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20210801" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Axis2 &#x2013; Maven2 Java2WSDL Plug-in Guide</title>
    <link rel="stylesheet" href="../../css/apache-maven-fluido-1.6.min.css" />
    <link rel="stylesheet" href="../../css/site.css" />
    <link rel="stylesheet" href="../../css/print.css" media="print" />
      <script type="text/javascript" src="../../js/apache-maven-fluido-1.6.min.js"></script>
<meta name="generator" content="HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" /><meta http-equiv="content-type" content="" />      </head>
    <body class="topBarDisabled">
      <div class="container-fluid">
      <div id="banner">
        <div class="pull-left"><a href="http://www.apache.org/" id="bannerLeft"><img src="http://www.apache.org/images/asf_logo_wide.png"  alt="Apache Axis2"/></a></div>
        <div class="pull-right"><a href="../.././" id="bannerRight"><img src="../../images/axis.jpg" /></a></div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
        <li id="publishDate">Last Published: 2021-08-01<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.8.0<span class="divider">|</span></li>
        <li class=""><a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
      <li class=""><a href="../../index.html" title="Axis2/Java">Axis2/Java</a><span class="divider">/</span></li>
    <li class="active ">Maven2 Java2WSDL Plug-in Guide</li>
        </ul>
      </div>
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
<ul class="nav nav-list">
          <li class="nav-header">Axis2/Java</li>
    <li><a href="../../index.html" title="Home"><span class="none"></span>Home</a>  </li>
    <li><a href="../../download.html" title="Downloads"><span class="none"></span>Downloads</a>  </li>
    <li><a href="javascript:void(0)" title="Release Notes"><span class="icon-chevron-down"></span>Release Notes</a>
      <ul class="nav nav-list">
    <li><a href="../../release-notes/1.6.1.html" title="1.6.1"><span class="none"></span>1.6.1</a>  </li>
    <li><a href="../../release-notes/1.6.2.html" title="1.6.2"><span class="none"></span>1.6.2</a>  </li>
    <li><a href="../../release-notes/1.6.3.html" title="1.6.3"><span class="none"></span>1.6.3</a>  </li>
    <li><a href="../../release-notes/1.6.4.html" title="1.6.4"><span class="none"></span>1.6.4</a>  </li>
    <li><a href="../../release-notes/1.7.0.html" title="1.7.0"><span class="none"></span>1.7.0</a>  </li>
    <li><a href="../../release-notes/1.8.0.html" title="1.8.0"><span class="none"></span>1.8.0</a>  </li>
      </ul>
  </li>
    <li><a href="../../modules/index.html" title="Modules"><span class="none"></span>Modules</a>  </li>
    <li><a href="../../tools/index.html" title="Tools"><span class="none"></span>Tools</a>  </li>
          <li class="nav-header">Documentation</li>
    <li><a href="../../docs/toc.html" title="Table of Contents"><span class="none"></span>Table of Contents</a>  </li>
    <li><a href="../../docs/installationguide.html" title="Installation Guide"><span class="none"></span>Installation Guide</a>  </li>
    <li><a href="../../docs/quickstartguide.html" title="QuickStart Guide"><span class="none"></span>QuickStart Guide</a>  </li>
    <li><a href="../../docs/userguide.html" title="User Guide"><span class="none"></span>User Guide</a>  </li>
    <li><a href="../../docs/jaxws-guide.html" title="JAXWS Guide"><span class="none"></span>JAXWS Guide</a>  </li>
    <li><a href="../../docs/pojoguide.html" title="POJO Guide"><span class="none"></span>POJO Guide</a>  </li>
    <li><a href="../../docs/spring.html" title="Spring Guide"><span class="none"></span>Spring Guide</a>  </li>
    <li><a href="../../docs/webadminguide.html" title="Web Administrator's Guide"><span class="none"></span>Web Administrator's Guide</a>  </li>
    <li><a href="../../docs/migration.html" title="Migration Guide (from Axis1)"><span class="none"></span>Migration Guide (from Axis1)</a>  </li>
          <li class="nav-header">Resources</li>
    <li><a href="../../faq.html" title="FAQ"><span class="none"></span>FAQ</a>  </li>
    <li><a href="../../articles.html" title="Articles"><span class="none"></span>Articles</a>  </li>
    <li><a href="http://wiki.apache.org/ws/FrontPage/Axis2/" class="externalLink" title="Wiki"><span class="none"></span>Wiki</a>  </li>
    <li><a href="../../refLib.html" title="Reference Library"><span class="none"></span>Reference Library</a>  </li>
    <li><a href="../../apidocs/index.html" title="Online Java Docs"><span class="none"></span>Online Java Docs</a>  </li>
          <li class="nav-header">Get Involved</li>
    <li><a href="../../overview.html" title="Overview"><span class="none"></span>Overview</a>  </li>
    <li><a href="../../git.html" title="Checkout the Source"><span class="none"></span>Checkout the Source</a>  </li>
    <li><a href="../../mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a>  </li>
    <li><a href="../../release-process.html" title="Release Process"><span class="none"></span>Release Process</a>  </li>
    <li><a href="../../guidelines.html" title="Developer Guidelines"><span class="none"></span>Developer Guidelines</a>  </li>
    <li><a href="../../siteHowTo.html" title="Build the Site"><span class="none"></span>Build the Site</a>  </li>
          <li class="nav-header">Project Information</li>
    <li><a href="../../team-list.html" title="Project Team"><span class="none"></span>Project Team</a>  </li>
    <li><a href="../../issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a>  </li>
    <li><a href="https://github.com/apache/axis-axis2-java-core/java/core/trunk/" class="externalLink" title="Source Code"><span class="none"></span>Source Code</a>  </li>
    <li><a href="../../thanks.html" title="Acknowledgements"><span class="none"></span>Acknowledgements</a>  </li>
          <li class="nav-header">Apache</li>
    <li><a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License"><span class="none"></span>License</a>  </li>
    <li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a>  </li>
    <li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a>  </li>
    <li><a href="http://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a>  </li>
  </ul>
          <hr />
          <div id="poweredBy">
              <div class="clear"></div>
              <div class="clear"></div>
              <div class="clear"></div>
              <div class="clear"></div>
  <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../../images/logos/maven-feather.png" /></a>
              </div>
          </div>
        </div>
        <div id="bodyColumn"  class="span10" >
<html xmlns="http://www.w3.org/1999/xhtml">


<h1>Maven2 Java2WSDL Plug-in Guide</h1>
<section>
<h2><a name="Introduction"></a>Introduction</h2>

<p>This plugin takes as input a Java class and generates a WSDL,
which describes a Web service for invoking the classes methods.</p>

<p><a href="../index.html">[Download Plugin Tool]</a></p>
<section>
<h2><a name="Goals"></a>Goals</h2>

<p>The Java2WSDL plugin offers a single goal:</p>

<ul>

<li>java2wsdl (default): Reads a java class and generates a WSDL
for invoking the classes methods as a Web service.</li>
</ul>

<p>To run the plugin, add the following section to your <a class="externalLink" href="http://maven.apache.org/guides/introduction/introduction-to-the-pom.html">
POM</a> (Project Object Model):</p>

<div>
<pre>
  &lt;build&gt;
    &lt;plugins&gt;
      &lt;plugin&gt;
        &lt;groupId&gt;org.apache.axis2&lt;/groupId&gt;
        &lt;artifactId&gt;axis2-java2wsdl-maven-plugin&lt;/artifactId&gt;
        &lt;configuration&gt;
          &lt;className&gt;com.foo.myservice.MyHandler&lt;/className&gt;
        &lt;/configuration&gt;
        &lt;executions&gt;
          &lt;execution&gt;
            &lt;goals&gt;
              &lt;goal&gt;java2wsdl&lt;/goal&gt;
            &lt;/goals&gt;
          &lt;/execution&gt;
         &lt;/executions&gt;
      &lt;/plugin&gt;
    &lt;/plugins&gt;
  &lt;/build&gt;
  
</pre></div>

<p>The plugin will be invoked automatically in the
generate-resources phase. You can also invoke it directly from the
command line by running the command:</p>

<div>
<pre>
mvn axis2-java2wsdl:java2wsdl
</pre></div>
<section>
<h3><a name="The_Java2WSDL_Goal"></a>The Java2WSDL Goal</h3>

<p>By default, the plugin reads the given Java class and creates a
file
<b>target/generated-resources/java2wsdl/service.wsdl
</b>.
The Java class is given by the configuration element
<b>className</b> above.</p>
</section><section>
<h2><a name="Configuration"></a>Configuration</h2>

<p>The Java2WSDL goal takes the following parameters as input. All
parameters can be set from the command line by using properties.
For example, the parameter &quot;className&quot; may be set using the
property &quot;axis2.java2wsdl.className&quot;. If the parameter isn't set
via property or in the POM, then a default value applies.</p>

<table border="0" class="table table-striped">
<tbody>

<tr class="a">

<td><b>Parameter name</b></td>

<td><b>Command line property</b></td>

<td><b>Description</b></td>

<td><b>Default value</b></td>
</tr>

<tr class="b">

<td>className</td>

<td>${axis2.java2wsdl.className}</td>

<td>Fully qualified name of the class, which is being read and
transformed into a WSDL</td>

<td></td>
</tr>

<tr class="a">

<td>outputFileName</td>

<td>${axis2.java2wsdl.outputFileName}</td>

<td>Path of the generated service file.</td>

<td></td>
</tr>

<tr class="b">

<td>schemaTargetNamespace</td>

<td>${axis2.java2wsdl.schemaTargetNamespace}</td>

<td>Target namespace of the generated schema.</td>

<td></td>
</tr>

<tr class="a">

<td>schemaTargetNamespacePrefix</td>

<td>${axis2.java2wsdl.schemaTargetNamespacePrefix}</td>

<td>Prefix, which is being associated with the schemas target
namespace.</td>

<td></td>
</tr>

<tr class="b">

<td>serviceName</td>

<td>${axis2.java2wsdl.serviceName}</td>

<td>Name of the generated Web service.</td>

<td>Unqualified name of the input class.</td>
</tr>

<tr class="a">

<td>targetNamespace</td>

<td>${axis2.java2wsdl.targetNamespace}</td>

<td>Target namespace of the generated WSDL</td>

<td>Default namespace</td>
</tr>

<tr class="b">

<td>targetNamespacePrefix</td>

<td>${axis2.java2wsdl.targetNamespacePrefix}</td>

<td>Prefix, which is being associated with the target
namespace</td>

<td></td>
</tr>
</tbody>
</table>

</html>
        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &copy;2004&#x2013;2021
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
        </div>
        </div>
    </footer>
    </body>
</html>
