<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.7.4 at 2018-05-19 
 | 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="20180519" />
    <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: 2018-05-19<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.7.8<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.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>
      </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>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>
        
<div class="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>
        </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>
            
<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>
        </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>