<!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>Apache Axis2 &#x2013; Code Generator Wizard Guide for Eclipse Plug-in</title>
    <link rel="stylesheet" href="../../css/apache-maven-fluido-1.6.min.css" />
    <link rel="stylesheet" href="../../css/site.css" />
    <link rel="stylesheet" href="../../css/print.css" media="print" />
      <script type="text/javascript" src="../../js/apache-maven-fluido-1.6.min.js"></script>
      </head>
    <body class="topBarDisabled">
      <div class="container-fluid">
      <div id="banner">
        <div class="pull-left"><a href="http://www.apache.org/" id="bannerLeft"><img src="http://www.apache.org/images/asf_logo_wide.png"  alt="Apache Axis2"/></a></div>
        <div class="pull-right"><a href="../.././" id="bannerRight"><img src="../../images/axis.jpg" /></a></div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
        <li id="publishDate">Last Published: 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="active ">Code Generator Wizard Guide for Eclipse Plug-in</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.7.1.html" title="1.7.1"><span class="none"></span>1.7.1</a>  </li>
    <li><a href="../../release-notes/1.7.2.html" title="1.7.2"><span class="none"></span>1.7.2</a>  </li>
    <li><a href="../../release-notes/1.7.3.html" title="1.7.3"><span class="none"></span>1.7.3</a>  </li>
    <li><a href="../../release-notes/1.7.4.html" title="1.7.4"><span class="none"></span>1.7.4</a>  </li>
    <li><a href="../../release-notes/1.7.5.html" title="1.7.5"><span class="none"></span>1.7.5</a>  </li>
    <li><a href="../../release-notes/1.7.6.html" title="1.7.6"><span class="none"></span>1.7.6</a>  </li>
    <li><a href="../../release-notes/1.7.7.html" title="1.7.7"><span class="none"></span>1.7.7</a>  </li>
    <li><a href="../../release-notes/1.7.8.html" title="1.7.8"><span class="none"></span>1.7.8</a>  </li>
    <li><a href="../../release-notes/1.7.9.html" title="1.7.9"><span class="none"></span>1.7.9</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="../../svn.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="http://svn.apache.org/viewvc/axis/axis2/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" >

    
        <h1>Code Generator Wizard Guide for Eclipse Plug-in</h1>
        
<p>This document explains the usage of this code generator plug-in
        for Eclipse. In other words, this document will guide you through
        the operations of generating a WSDL file from a Java class and/or
        generating a Java class file from a WSDL file.</p>
        
<p><a href="../../download.html">[Download Plugin Tool]</a></p>
        
<ul>
<li><a href="#Introduction">Introduction</a></li>
<li><a href="#Installation">Installation</a></li>
<li><a href="#Operation">Operation</a>
<ul>
<li><a href="#WSDL2Java">WSDL2Java</a></li>
<li><a href="#Java2WSDL">Java2WSDL</a></li></ul></li>
<li><a href="#Appendix">Appendix</a></li></ul>
        
<div class="section">
<h2><a name="Introduction"></a>Introduction</h2>
            
<p>The Axis2 code generator comes built-in with an <a class="externalLink" href="http://www.eclipse.org">Eclipse</a> plug-in. This plug-in can be
            used to generate a WSDL file from a java class (Java2WSDL) and/or a
            java class file from a WSDL (WSDL2Java). First you need to install
            the plug-in. The instructions for the installation process are
            given below.</p>
        </div>
        
<div class="section">
<h2><a name="Installation"></a>Installation</h2>
            
<p>
                Installation instructions for the plugin can be found
                <a href="plugin-installation.html">here</a>.
            </p>
        </div>
        
<div class="section">
<h2><a name="Operation"></a>Operation</h2>
            
<div class="section">
<h3><a name="WSDL2Java"></a>WSDL2Java</h3>
                
<p>If the plug-in is properly installed you should see a new wizard
                under the &quot;New&quot; section.(use the File -&gt; New -&gt; Other or Ctrl
                + N )</p>
                
<p><img src="images/wsdl2java-screen0.png" alt="wsdl2java-screen0" /></p>
                
<p>Selecting the wizard and pressing the &quot;Next&quot; button will start
                the code generator wizard. Following is the first wizard page.</p>
                
<p><b>Page 1:</b></p>
                
<p><img src="images/wsdl2java-screen1.png" alt="wsdl2java-screen1" /></p>
                
<p>Selecting the &quot;Generate Java source code from WSDL file&quot; option
                and clicking &quot;Next&quot; leads to the following page.</p>
                
<p><b>WSDL2Java Page 2 :</b></p>
                
<p><img src="images/wsdl2java-screen2.png" alt="wsdl2java-screen2" /></p>
                
<p>To move on to the next page the WSDL file location must be
                given. The &quot;Browse&quot; button can be used to easily browse for a file
                rather than typing the whole path.</p>
                
<p><b>WSDL2Java Page 3 :</b></p>
                
<p>Once the WSDL file is selected, the next page will take you to
                the page from where <b>codegen options</b> are to be
                selected. By far this is the most important page in this wizard.
                This page determines the characteristics of the code being
                generated.</p>
                
<p>Novices need not worry about these options since the most common
                options are defaulted, but advanced users will find it very easy to
                turn the knobs using these options.</p>
                
<p><img src="images/wsdl2java-screen3.png" alt="wsdl2java-screen3" /></p>
                
<p>What advanced users can do is select custom from the select
                codegen options drop down list and then change/edit the fields that
                you need.</p>
                
<p><img src="images/wsdl2java-screen31.png" alt="wsdl2java-screen31" /></p>
                
<p>Once the options are selected, only the final step of the code
                generation is left which is the selection of the output file
                location.</p>
                
<p><b>WSDL2Java Page 4 :</b></p>
                
<p>Here you can select the output file path by typing or browsing
                using the &quot;Browse&quot; button. You have the option of browsing only
                eclipse workspace projects by selecting the &quot;Add the source to a
                project on current eclipse workspace&quot; radio button. Or else you
                have the option to save the codegen resutls to file system</p>
                
<p><img src="images/wsdl2java-screen4.png" alt="wsdl2java-screen4" /></p>
                
<p>Here also you have the option to add some value to the codegen
                results. If you have enabled the check box &quot;Add Axis2 libraries to
                the codegen result project&quot; then all other controls below will get
                enabled. What you can do is point the downloaded Axis2_HOME
                location via the &quot;Browse&quot; button. Then you can verify the
                availability of the Axis2 libs by clicking on the &quot;Check Libs&quot;
                button. If all goes well then you can add the axis 2 libs to the
                codegen results location. Another option is available to generate a
                jar file if the user needs to add the codegen results to a project
                as a compiled jar file to the selected locations lib directory.</p>
                
<p><img src="images/wsdl2java-screen41.png" alt="wsdl2java-screen41" /></p>
                
<p>When the output file location is selected, the &quot;Finish&quot; button
                will be enabled. Clicking the &quot;Finish&quot; button will generate the
                code and a message box will pop up acknowledging the success. Well
                Done! You've successfully completed Axis2 code generation.</p>
            </div>
            
<div class="section">
<h3><a name="Java2WSDL"></a>Java2WSDL</h3>
                
<p><b>Page 1:</b></p>
                
<p>For this operation you need to select the option which says
                &quot;Generate a WSDL from a Java source file&quot;</p>
                
<p><img src="images/java2wsdl-screen0.png" alt="java2wsdl-screen0" /></p>
                
<p>Then click the &quot;Next&quot; button which will lead to the next page
                below.</p>
                
<p><b>Java2WSDL Page 2:</b></p>
                
<p><img src="images/java2wsdl-screen1.png" alt="java2wsdl-screen1" /></p>
                
<p>In this page one needs to select the class to be exposed and the
                relevant jar files /classes to be loaded as the classpath. After
                the libraries have been set, the &quot;Test Class Loading&quot; button must
                be clicked in order to test whether the class is loadable. Unless
                the class loading is successful proceeding to the &quot;Next&quot; button
                will not be enabled.</p>
                
<p>Once the classloading is successful and &quot;Next&quot; button is clicked
                the page below will appear.</p>
                
<p><b>Java2WSDL Page 3:</b></p>
                
<p>This page allows the parameters to be modified by setting the
                options for the generator.</p>
                
<p><img src="images/java2wsdl-screen2.png" alt="java2wsdl-screen2" /></p>
                
<p><b>Java2WSDL Page 4:</b></p>
                
<p>Here you can select the output file path by typing or browsing
                using the &quot;Browse&quot; button. You have the option of browsing only
                Eclipse workspace projects by selecting the &quot;Add the source to a
                project on current eclipse workspace&quot; radio button . Or else you
                have the option to save the codegen resutls to file system. Once
                the output file location and the output WSDL file name is added you
                can click the &quot;Finish&quot; button to complete generation.</p>
                
<p><img src="images/java2wsdl-screen3.png" alt="java2wsdl-screen3" /></p>
                
<p>If a message box pops up acknowledging the success, then you've
                successfully completed the Java2WSDL code generation.</p>
            </div>
        </div>
        
<div class="section">
<h2><a name="Appendix"></a>Appendix</h2>
            
<ul>
            
<li>Eclipse reference - <a class="externalLink" href="http://www.eclipse.org/">http://www.eclipse.org/</a></li>
            
<li>Custom Ant Tasks - <a class="externalLink" href="http://ant.apache.org/manual/develop.html">http://ant.apache.org/manual/develop.html</a></li>
            </ul>
        </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>