<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.7.4 at 2018-11-16 
 | 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="20181116" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Maven Axis 2 Java2WSDL Plugin &#x2013; </title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.6.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
      <script type="text/javascript" src="./js/apache-maven-fluido-1.6.min.js"></script>
      </head>
    <body class="topBarDisabled">
      <div class="container-fluid">
      <div id="banner">
        <div class="pull-left"><a href="http://maven.apache.org/" id="bannerLeft"><img src="http://maven.apache.org/images/apache-maven-project.png"  alt="Maven Axis 2 Java2WSDL Plugin"/></a></div>
        <div class="pull-right"><div id="bannerRight"><img src="http://maven.apache.org/images/maven-small.gif" /></div>
</div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
        <li id="publishDate">Last Published: 2018-11-16<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.7.9<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=""><a href="index.html" title="Maven Axis 2 Java2WSDL Plugin">Maven Axis 2 Java2WSDL Plugin</a><span class="divider">/</span></li>
    <li class="active "></li>
      <li class="pull-right"><span class="divider">|</span>
<a href="http://maven.apache.org/maven2/" class="externalLink" title="Maven 2">Maven 2</a></li>
      <li class="pull-right"><span class="divider">|</span>
<a href="http://ws.apache.org/axis2/" class="externalLink" title="Axis 2">Axis 2</a></li>
      <li class="pull-right"><span class="divider">|</span>
<a href="http://ws.apache.org/" class="externalLink" title="Webservices">Webservices</a></li>
      <li class="pull-right"><a href="http://www.apache.org/" class="externalLink" title="Apache">Apache</a></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">Overview</li>
    <li><a href="introduction.html" title="Introduction"><span class="none"></span>Introduction</a>  </li>
    <li><a href="howto.html" title="How to Use"><span class="none"></span>How to Use</a>  </li>
    <li class="active"><a href="#"><span class="none"></span>Configuration</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" >
<div class="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="1" class="table table-striped">
<tr class="a">
<td align="left">Parameter name</td>
<td align="left">Command line property Default value</td>
<td align="left">Description</td></tr>
<tr class="b">
<td align="left">className</td>
<td align="left">$<a name="axis2.java2wsdl.className">axis2.java2wsdl.className</a></td>
<td align="left">Fully qualified name of the class, which is being read and transformed into a WSDL.</td></tr>
<tr class="a">
<td align="left">outputFileName</td>
<td align="left">$<a name="axis2.java2wsdl.outputFileName">axis2.java2wsdl.outputFileName</a></td>
<td align="left">Path of the generated service file.</td></tr>
<tr class="b">
<td align="center">schemaTargetNamespace</td>
<td align="center">$<a name="axis2.java2wsdl.schemaTargetNamespace">axis2.java2wsdl.schemaTargetNamespace</a></td>
<td align="center">Target namespace of the generated schema.</td></tr>
<tr class="a">
<td align="left">schemaTargetNamespacePrefix</td>
<td align="left">$<a name="axis2.java2wsdl.schemaTargetNamespacePrefix">axis2.java2wsdl.schemaTargetNamespacePrefix</a></td>
<td align="left">Prefix, which is being associated with the schemas target namespace.</td></tr>
<tr class="b">
<td align="left">serviceName</td>
<td align="left">$<a name="axis2.java2wsdl.serviceName">axis2.java2wsdl.serviceName</a> Unqualified name of the input class.</td>
<td align="left">Name of the generated web service.</td></tr>
<tr class="a">
<td align="left">targetNamespace</td>
<td align="left">$<a name="axis2.java2wsdl.targetNamespace">axis2.java2wsdl.targetNamespace</a> Default namespace</td>
<td align="left">Target namespace of the generated WSDL.</td></tr>
<tr class="b">
<td align="left">targetNamespacePrefix</td>
<td align="left">$<a name="axis2.java2wsdl.targetNamespacePrefix">axis2.java2wsdl.targetNamespacePrefix</a></td>
<td align="left">Prefix, which is being associated with the target namespace.</td></tr></table></div>
        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &copy;2004&#x2013;2018
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
        </div>
        </div>
    </footer>
    </body>
</html>