<!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; 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: 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 ">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.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="../../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>
<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>
<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>
<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>
<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>
<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>
<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>
</section><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>
</section>
</html>
        </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>