<!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; Axis2 Plug-in Guide for IntelliJ IDEA</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="text/html; charset=us-ascii" /><meta content="text/html; charset=iso-8859-1" /><meta name="generator" content="Bluefish 1.0.6" />      </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 ">Axis2 Plug-in Guide for IntelliJ IDEA</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" >
<html xmlns="http://www.w3.org/1999/xhtml">


<h1>Axis2 Plug-in Guide for IntelliJ IDEA</h1>

<p>This document explains the installation and usage of Axis2
plug-in for IntelliJ IDEA.</p>

<p><a href="../../download.html">[Download
Plug-in]</a></p>

<div class="section">
<h2><a name="Content"></a>Content</h2>

<ul>

<li><a href="#intro">Introduction</a></li>

<li><a href="#installation">Installation</a></li>

<li><a href="#WSDL2Java_Code_Generation">WSDL2Java Code
Generation</a></li>

<li><a href="#Create_Service_Archive">Create a Service Archive</a>

<ul>

<li><a href="#sub12">Sub Wizard 1 &amp; Sub Wizard 2</a></li>

<li><a href="#sub3">Sub Wizard 3</a></li>
</ul>
</li>
</ul>
<a name="intro" id="intro"></a>

<div class="section">
<h2><a name="Introduction"></a>Introduction</h2>

<p>The Axis2 plug-in for IntelliJ IDEA helps users to create
service archives which can be deployed in Axis2, and generate java
classes files from WSDL files. The following section describes the
installation procedure followed by the usage of the plug-in.</p>

<p><b>Note:</b> This plug-in is made up with IDEA Open API which will be
compatible with idea version since build 4121. The plugin also be
compatible with all the builds after build number 4121 and also the
java version should be 1.4 or higher. The provided screen shots may
slightly differ with what the user would actually see but the
functionality has not been changed.</p>
<a name="installation" id="installation"></a>

<div class="section">
<h2><a name="Installation"></a>Installation</h2>

<p>First <a href="../../download.html">download</a> the
plug-in which is a zipped file, and extract it into plugins
directory which is located in the directory where IDEA is
installed. If a previous version of the plug-in resides in this
directory you will have to delete it prior to extracting the new
zip file. If you have extracted the file correctly you would see a
directory called axis2-idea-plugin.</p>

<p>Next step is to restart IDEA so that the changes can take place.
If the plug-in has been installed correctly, you will see following
icons in IDEA when it is restarted.</p>

<p><img src="images/idea-icons.jpg" alt="Figure 1" /></p>

<p>Also if you right-click on the IDEA editor you would see a link
to the same plug-in.</p>

<p><img src="images/idea-popup.jpg" alt="Figure2" /></p>

<p>When you click on either one of them, a window (Page 1) will
appear asking you to select one of the following two options.</p>

<ol style="list-style-type: decimal">

<li><a href="#Create_Service_Archive">Create a service
archive</a></li>

<li><a href="#WSDL2Java_Code_Generation">WSDL2Java code
generation</a></li>
</ol>

<p><b>Page 1:</b></p>

<p><img src="images/fig1.jpg" alt="Figure3" /></p>

<p>If you want to create a service archive obviously you must
select &quot;Create a service archive&quot; option. Like wise, if u want to
generate java class file from a WSDL file you must select the radio
button option &quot;WSDL2Java code generation&quot;.</p>

<div class="section">
<h2><a name="WSDL2Java_Code_Generation" id="WSDL2Java_Code_Generation">WSDL2Java Code Generation</a></h2>

<p>Select &quot;WSDL2Java code generation&quot; and click on the button &quot;OK&quot;
to generate code from a WSDL file. Then the following window will
appear.</p>

<p><b>WSDL2Java Page 2:</b></p>

<p><img src="images/fig2.jpg" alt="Figure4" /></p>

<p>Once the WSDL file is selected you will be able to move onto the
next page. The &quot;Browse&quot; button can be used to easily browse for a
file rather than having to type the whole path.</p>

<p>Once the WSDL file is selected, click on the &quot;Next&quot; button which
will take you to the page below.</p>

<p><b>WSDL2Java Page 3:</b></p>

<p>This page gives the user the option of selecting default or
custom code generation options. There are three default code
generation options in all. The first enables the user to generate
both client and server code under default configurations while the
second generates just the client side under default configurations.
The third option generates server side code under default
configurations.</p>

<p><b>Note:</b></p>

<ul>

<li>When client side code is generated under default configurations
it generates the stub, compiles it, packages it as a jar (the name
of the jar will be &lt;service name &gt;-jar) places it in a lib
folder (If there is no lib folder, it is created) under the IDEA
project that is opened. This jar that's generated will also be
added as a project library to the current active IDEA project.</li>

<li>When server code is generated under default configurations it
generates the server side code and also generates a default
service.xml. The user will then be taken to page 5.</li>

<li>When both server and client side is generated under default
configurations the client stub is added are a jar to the current
IDEA project and the user is taken to page 5.</li>
</ul>

<p><img src="images/fig19.jpg" alt="Figure5" /></p>

<p><b>WSDL2Java Page 4:</b></p>

<p><b>Codegen options</b> are to be selected here. By far
this is the most important page in this wizard, which determines
the characteristics of the code being generated.</p>

<p><img src="images/fig18.jpg" alt="Figure5" /></p>

<p><b>Here's some information on the options for
selection:</b></p>

<ul>

<li>Output language can be Java, C#. But we have not fully tested
C# codegeneration, therefore, it is better to select Java as output
language.</li>

<li>If the WSDL comprises of several services, the user can select
the service for which the code should be generated for.</li>

<li>If the WSDL comprises of several ports for a particullar
service, the user can select the port which the code should be
generated for.</li>

<li>The default data binding type is adb (Axis2 Data Binding).
Although the tool is capable of providing XML beans, due to class
loading issues in XML beans, current implementation only generate
code with OM and ADB.</li>

<li>As for the package name of the generated code, you can set the
name as you wish.</li>

<li>Users can select the one out of the three options- &quot;Generate
Client Side&quot;, &quot;Generate Server Side&quot; and &quot;Generate All&quot;. The user
will be able to select further options based on his options
selected here. These sub options are explained below.</li>

<li style="list-style: none; display: inline">

<ul>

<li>If user selects &quot;Generate Client Side&quot;, he can further select
the service invocation style. Since Axis2 supports both synchronous
and asynchronous client programming model, the tool has provided a
way to selecting the invocation style.</li>

<li>If user selects &quot;Generate Server Side&quot;, he can also generate a
default service XML file. If the user selects &quot;Generate an
interface for skeleton&quot; option then it only generates an interface
for the server side. If so the user has to implement this
interface. If this option is not selected, the skeleton class is
generated, which the user can fill in later on.</li>

<li>If user selects &quot;Generate All&quot; option, then all the classes
will be generated in the referenced schemas by the WSDL
irrespective of elements referred by the WSDL, along with the
client side code.</li>
</ul>
</li>

<li>The dafault behaviour of the code generator is to map
namespaces to package names logically, but if the user wishes to
change the package names of the generated classes, he can do so by
changing the values in the Namespace to Packagename mapping
table.</li>
</ul>

<p>With these enhanced options novices need not worry about the
options that can be set as the default options cover the most
common cases. Advanced users will find it very easy to turn the
knobs using the custom generation option.</p>

<p><b>WSDL2Java Page 5:</b></p>

<p><img src="images/fig3.jpg" alt="Figure6" /></p>

<p>Here uses have the option of adding the generated code directly
to their working IDEA project or choose a custom location. If the
user decides to add it to the current IDEA project he/she will have
to choose the module and the source directory that the code should
be generated to.</p>

<p>Alternatively the user can browse and select the output
location/path (the location at which the code is to be generated)
using the &quot;Browse&quot; button. Because of the &quot;Browse&quot; button you do
not need to type in the output file path.</p>

<p><img src="images/fig4.jpg" alt="Fig4" /></p>

<p>Once an output location is selected you can click on &quot;Finish&quot;
button which will generate the java class file. If code generation
is successful then a message box will appear acknowledging this
fact a shown above.</p>

<p><a name="Create_Service_Archive" id="Create_Service_Archive"></a></p>

<div class="section">
<h2><a name="Create_a_Service_Archive"></a>Create a Service Archive</h2>

<p>Select the &quot;Create a service archive&quot; radio button on Page 1 of
Axis2 IDEA plug-in wizard.</p>

<p><b>Page 1:</b></p>

<p><img src="images/fig1.jpg" alt="Fig5" /></p>

<p><b>Service Archive Page 2:</b></p>

<p>The page below will appear asking the user to select the archive
type</p>

<p><img src="images/fig6.jpg" alt="fig6" /></p>

<p>In Axis2, the user can deploy a single service or a service
group. Therefore, you can select either &quot;Single service archive&quot; or
&quot;Service group archive&quot; for the archive type you want to
create.</p>

<p>If you already have a services.xml you can skip some of the
steps in the wizard by selecting the radio button option &quot;I already
have services.xml&quot; and clicking on &quot;Next&quot; button. If you do not
have the services.xml, select the radio button option &quot;Generate
services.xml&quot; and click on the &quot;Next&quot; button, in which case the
tool will create the services.xml for you.</p>

<p>Depending on the options you selected on this page there can be
three sub wizards:</p>

<ol style="list-style-type: decimal">

<li><a href="#sub12">Sub wizard 1</a> (Generate single service and
its services.xml)</li>

<li><a href="#sub12">Sub wizard 2</a> (Generate service group and
its services.xml)</li>

<li><a href="#sub3">Sub wizard 3</a> (Generate service/service
group using already existing services.xml)</li>
</ol>

<p>1 &amp; 2 follow the same set of steps except for some looping
mechanism in the middle of the wizard.</p>
<a name="sub12" id="sub12"></a>

<div class="section">
<h3><a name="Sub_Wizard_1_and_Sub_Wizard_2"></a>Sub Wizard 1 and Sub Wizard 2</h3>

<p><b>Service Archive (sub wizards 1 &amp; 2) Page
3:</b></p>

<p>From this page you have to select the location of the service
classes directory (the location of the compiled classes). You do
not need to type path, simply browse and select.</p>

<p><img src="images/fig7.jpg" alt="fig7" /></p>

<p>When you click on &quot;Next&quot; button, wizard will move to the page
below</p>

<p><b>Service Archive (sub wizards 1 &amp; 2) Page
4:</b></p>

<p>Here you select service specific external libraries (third party
libraries) and service WSDL files. If you want to add multiple WSDL
files to a single service type you can do that as well.</p>

<p><img src="images/fig8.jpg" alt="fig8" /></p>

<p>To add libraries first click on the browse button to browse for
library files and then click on the &quot;Add&quot; button. Once added the
selected file will appear in the list box.</p>

<p>To add WSDLs, first click on the browse button to browse for
WSDL file and then click the &quot;Add&quot; button to add the file to the
list.</p>

<p>After adding external libraries and service WSDL files click on
the &quot;Next&quot; button to move to next page.</p>

<p><b>Service Archive (sub wizards 1 &amp; 2) Page
5:</b></p>

<p>This page allows you to select service implementation class. In
the case of service group, same page will be looped to select
multiple service implementation classes. This process is explained
in detail below.</p>

<p>Select a service implementation class by browsing and clicking
on the &quot;Load&quot; button to load all the public methods in that class,
after which you can select the methods that you want to publish
using the check boxes.</p>

<p><b>Note :</b> If you do not select the correct class
path from the &quot;Class location selection&quot; window, the public methods
which are available in the selected class file will not be
loaded.</p>

<p><img src="images/fig10.jpg" alt="fig10" /></p>

<p>In &quot;Service Name&quot; text box you can type the name of the service
you want, but remember that the service name should be unique
throughout the system.</p>

<p>When you have completed this particular service click on the
button &quot;Next&quot;. In the case of a service group when you click on the
&quot;Next&quot; button for that particular service the following dialog box
will appear with option to add more service(s) to a service
group.</p>

<p><img src="images/fig11.jpg" alt="fig11" /></p>

<p>If you click on &quot;Yes&quot;, you have to follow the same procedure to
add some other service(s) to service group.</p>

<p>If you click on &quot;No&quot;, the button &quot;Next&quot; will be enabled and you
can go to next page.</p>

<p><a name="Note" id="Note"><b><i>Note: From this point
onwards the steps are similar to all the sub
wizards.</i></b></a></p>

<p><b>Service Archive (sub wizards 1 &amp; 2) Page
6:</b></p>

<p>This page displays the services.xml file, either the one given
by you (in the case of I already have services.xml)
or the one generated by the system (in the case of &quot;generate
services.xml&quot;)</p>

<p><img src="images/fig12.jpg" alt="fig12" /></p>

<p>This page is editable and provide a way to add parameters and
module references to any level.</p>

<p><b>Note :</b> When you click on either the
&quot;+Parameter&quot; or the &quot;+ModuleRef&quot; buttons remember that
corresponding text will be added to the current mouse position.
Therefore, click on the location you want to add the parameter or
module references and then click relevant button (+Parameter or
+ModuleRef).</p>

<p><b>+Parameter button:</b></p>

<p>If you click on the &quot;+Parameter&quot; button a window will appear
asking to give parameter name and parameter value.</p>

<p><img src="images/fig13.jpg" alt="fig13" /></p>

<p>Note that you can also manually add parameters (without clicking
on the &quot;+Parameter&quot; button ) to any where in the document as you
wish.</p>

<p><b>+ModuleRef button:</b></p>

<p>Likewise, adding module references can be done by clicking on
the &quot;+ModuleRef&quot; button in the page. You have to type the name of
the module to be engaged as shown in the following figure.</p>

<p><img src="images/fig14.jpg" alt="fig14" /></p>

<p>When you complete this page press the &quot;Next&quot; button to go to
final page.</p>

<p><b>Service Archive (sub wizards 1 &amp; 2) Page
7:</b></p>

<p><img src="images/fig15.jpg" alt="fig15" /></p>

<p>Next step is to select output file location, the location in
which archive file should be created.</p>

<p>In the &quot;Archive Name&quot; text box, type the name of the archive
file you want to place. This name will finally become the service
group name.</p>

<p><b>Note :</b> Do not include file extension when you
type archive name. System will generate that for you.</p>

<p>When you are done, click the &quot;Finish&quot; button. If everything has
been done successfully you will see following message.</p>

<p><img src="images/fig16.jpg" alt="fig16" /></p>

<p><b><i>Note: Pages 6 &amp; 7 of sub wizards 1 &amp; 2 are
common to sub wizard 3 from its page 3 onwards.</i></b></p>
<a name="sub3" id="sub3"></a>
</div>
<div class="section">
<h3><a name="Sub_Wizard_3"></a>Sub Wizard 3</h3>

<p>In the case where services.xml is already available, the steps
are as follows:</p>

<p><b>Service Archive (sub wizard 3) Page 3:</b></p>

<p><img src="images/fig17.jpg" alt="fig17" /></p>

<p>This page allows you to select both location of services.xml and
the location of service classes directory. Click on the &quot;Select&quot;
buttons and browse the file system to find required document and
location.</p>

<p>Click on the &quot;Next&quot; button which will take you to a page which
allows you to add third party libraries and WSDL's in the same
manner as &quot;Sub Wizard 1 &amp; Sub Wizard 2&quot; section's <a href="#Note">Page 6 - Edit service descriptors</a>. Note that Sub Wizard
3 from this point takes the same pages as 6 to 7 of Sub Wizards 1
&amp; 2.</p>
</div>
</html>
        </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>