<!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; Service Archive 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: 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 ">Service Archive 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.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" >

    
        <h1>Service Archive Generator Wizard Guide for Eclipse Plug-in</h1>
        
<p>This document will guide you through the installation and usage
        of the archive generator Eclipse plug-in.</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></li>
<li><a href="#Appendix">Appendix</a></li></ul>
        <section>
<h2><a name="Introduction"></a>Introduction</h2>
            
<p>As part of the Axis2 tool set, the service archive generator is
            an important tool that allows the generation of service archives
            (&quot;aar&quot; file or a &quot;jar&quot; files) that can be deployed as a web
            services to the Axis2.</p>
        </section>
        <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>
        </section>
        <section>
<h2><a name="Operation"></a>Operation</h2>
            
<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 align="center"><img src="images/ServiceWizardSelection.jpg" alt="ServiceWizardSelection" /></p>
            
<p>Selecting the wizard and pressing the &quot;Next&quot; button will start
            the service generator wizard. Following is the first page of the
            wizard.</p>
            
<p><b>Page 1:</b></p>
            
<p align="center"><img src="images/ServicePage1.jpg" alt="ServicePage1" /></p>
            
<p>Once the class file folder(which should be a folder in the
            file system) is browsed and selected, the &quot;Next&quot; button will be
            enabled and you can move to the next page. Note that you have the
            option of either including all the files or the class files only of
            the folder on page 1.</p>
            
<p><b>Page 2:</b></p>
            
<p>Page 2 of the wizard as seen below requires you to locate/browse
            the WSDL file. If you do not wish to add a WSDL file to the service
            archive, select skip WSDL, else you can select the location of the
            WSDL file by selecting the select WSDL option.</p>
            
<p align="center"><img src="images/service_page2.jpg" alt="service_page2" /></p>
            
<p><b>Page 3:</b></p>
            
<p>Select the services.xml file on this wizard page by browsing or
            select the option of generating service xml automatically, after
            which you can click &quot;Next&quot; button to go to the next page. Notice
            how the browsing option disables when the &quot;Generate service xml
            automatically&quot; check box is ticked.</p>
            
<p align="center"><img src="images/service_page3.jpg" alt="service_page3" /></p>
            
            
<p><b>Page 4:</b></p>
            
            
<p>The next step is to add the libraries. The library addition page
            looks like this :</p>
            
<p align="center"><img src="images/service_page5.jpg" alt="service_page5" /></p>
            
<p>The library name (with full path) can be either typed on the
            text box or browsed for using the &quot;Browse&quot; button.</p>
            
<p align="center"><img src="images/service_page5_browsed.jpg" alt="service_page5_browsed" /></p>
            
<p>Once there is a library name with full path on the text box, hit
            the &quot;Add&quot; button to add the library to the list. Added libraries
            should be displayed in the &quot;Added libraries&quot; list box. This way you
            can add as many external libraries as you wish. See the screen
            shots below.</p>
            
<p align="center"><img src="images/service_page5_hl.jpg" alt="service_page5_hl" /></p>
            
<p align="center"><img src="images/service_page5_added.jpg" alt="service_page5_added" /></p>
            
<p>If any added library needs to be removed, highlight it or in
            other words, select it from the &quot;Added libraries&quot; list and hit on
            the &quot;Remove&quot; button as shown below. Click on the &quot;Next&quot; button to
            proceed to the last page of the wizard if the user did not select
            to auto generate the services.xml file. If user select to auto
            generate the services.xml file then the services.xml option page
            will be displayed.</p>
            
<p align="center"><img src="images/service_page5_remove.jpg" alt="service_page5_remove" /></p>
            
<p><b>Page 5:</b></p>
            
<p>This page only appears if the user select to generate the
            services.xml at page 3 of the wizard. If the user have selected a
            services.xml then the user will be directed to the last page of the
            wizard.</p>
            
<p>After entering the correct service name and valid fully
            qualified class name, try to load the existing methods of that
            class by clicking the load button.</p>
            
<p align="center"><img src="images/service_page4_load.jpg" alt="service_page4_load" /></p>
            
<p>If successfully loaded the user will be presented with a table
            at the bottom of the page with the details of the loaded class. By
            checking and unchecking the user can select the necessary methods
            to include in the services.xml</p>
            
<p align="center"><img src="images/service_page4_table.jpg" alt="service_page4_table" /></p>
            
<p>By clicking on the search declared method only check box, the
            user can remove the inherited methods from the class. Click on the
            &quot;Next&quot; button to proceed to the last page of the wizard</p>
            
<p align="center"><img src="images/service_page4_search_declared.jpg" alt="service_page4_search_declared" /></p>
            
<p><b>Page 6:</b></p>
            
<p>The last page of the wizard asks for the output file location
            and the output archive file name. To be able to finish the wizard,
            user must enter valid output file location and output file
            name.</p>
            
<p align="center"><img src="images/service_page6.jpg" alt="service_page6" /></p>
            
<p>Once all the parameters are filled, hit the &quot;Finish&quot; button to
            complete the wizard and generate the service archive.</p>
            
<p align="center"><img src="images/success_msg.jpg" alt="success_msg" /></p>
            
<p>If you see the above message, then you've successfully generated
            the service archive! This service archive can be hot deployed
            (deployed at run time) to the axis2</p>
        </section>
        <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>
        </section>
    

        </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>
