<!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="../../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" >
<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>
