<html>
<head>
  <meta http-equiv="content-type" content="">
  <title>Axis2 FAQ</title>
</head>

<body lang="en">
<h1>General</h1>
<ol>
  <li><strong>I see OMElements in all the signatures, in the stubs, Client
    API and in skeletons. Where is data binding?</strong><br>

    <p>Axis2 supports databinding using XML-Beans from 0.9 release. For more
    information please read the <a href="0_94/userguide.html">user guide</a></p>
  </li>
  <li><a name="a2"><strong>What is OMElement, What does it
    represents?</strong></a><br>

    <p>OMElement is Axis2 representation of XML, it provide a tree model like
    DOM. If you are familiar with DOM or JDOM you can soon get familiarize
    with OM quickly. For more information read<a href="0_94/OMTutorial.html">
    Axiom Tutorial</a></p>
  </li>
  <li><strong>Integration security tests fail with JDK 1.5</strong></a><br>

    <p>You have to add Bouncy Castle as a JCE provider. Add the following entry to 
    JDK_HOME/jre/lib/security/java.security file</p>
    <p>security.provider.7=org.bouncycastle.jce.provider.BouncyCastleProvider</p>
    <p>security.provider.# will have to be decided depending on the existing entries 
    in the java.security file</p>
  </li>
</ol>

<h1>Client API</h1>
<ol>
  <li><strong>I want to do request response Messaging, Where should I
    look?</strong><br>

    <p>Look at the <a
    href="https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/ServiceClient.java">ServiceClient</a>
    class, for more information please read the <a href="0_94/userguide.html">user
    guide</a></p>
  </li>
  <li><strong>I want to do One Way Messaging, Where should I
    look?</strong><br>

    <p>From Axis2 0.94 onwards, both request-response and one way messaging will be handled by <a href="https://svn.apache.org/repos/asf/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/client/ServiceClient.java">ServiceClient</a>. </p>
  </li>
  <li><strong>When I try to do a non blocking call with use Separate Listener
    true I get the error <i>to do two Transport Channels the Addressing
    Modules must be engaged</i>, Why is this?</strong><br>

    <p>To do the two transport Channel invocation you need to engage the
    addressing module. You can enable it by un-commenting the entry in the
    axis2.xml file or Call.engageModule(QName). But addressing is enabled by default. </p>
  </li>
  <li><a name="b5"><strong>What is Axis Repository?</strong></a><br>

    <p>Repository stores the configuration of Axis2, the users should specify
    the repository folder starting the Axis Server (HTTP or TCP). In the case
    of tomcat it is the webapps/axis2/WEB-INF folder. Following picture shows
    a sample repository.</p>
    <img src="images/faq/1.jpg">
    <p>Modules and services have a archive format defined and they are
    automatically picked up by Axis2 when they are copied to corresponding
    folders.</p>
</ol>
    <h1>Maven</h1>
    <ol>
      <li><strong>I just installed maven and it gives an error when I was
        trying to run maven on Axis2 ......</strong>
        <p>Axis2 requires itest plugin to run some of the tests. Better get
        it using following command.</p>
        <ul>
          <li>maven plugin:download -DgroupId=maven-itest-plugin
            -DartifactId=maven-itest-plugin -Dversion=1.0
            -Dmaven.repo.remote=http://www.openejb.org/maven,http://www.ibiblio.org/maven</li>
        </ul>
      </li>
      <li><p><strong>I have problems building with maven 1.1</strong> ....<br>
        </p>
        <p>It seems that maven 1.1 doesn't come bundled with the required
        artifact plugin. Run following to get it updated<br>
        </p>
        <ul>
          <li>maven plugin:Download -DgroupId=maven
            -DartifactId=maven-artifact-plugin -Dversion=1.6.</li>
          <p>You may need to update the itest plugin too, using the above
          command in #1.</p>
        </ul>
      </li>
      <li><strong>What are the frequently used maven commands ?</strong></li>
      <p></p>

      <table border="1" align="center">
        <tbody>
          <tr>
            <th scope="col">
              <div align="left">
              Command</div>
            </th>
            <th scope="col">
              <div align="left">
              Description</div>
            </th>
          </tr>
          <tr>
            <td>
              <div align="left">
              maven</div>
            </td>
            <td>
              <div align="left">
              download relevant jars, if not available and compile and run
              tests of the system.</div>
            </td>
          </tr>
          <tr>
            <td>maven clean</td>
            <td>Clean all the stuff build so far, that are in the target
              folder. This will not clean the jar repository</td>
          </tr>
          <tr>
            <td>
              <div align="left">
              maven test</div>
            </td>
            <td>
              <div align="left">
              run only the tests. Will do automatic compilation of changed
              sources as well. This will not run soap interop tests</div>
            </td>
          </tr>
          <tr>
            <td>
              <div align="left">
              maven clean all-tests</div>
            </td>
            <td>
              <div align="left">
              Clean up and run all off line and on line tests</div>
            </td>
          </tr>
          <tr>
            <td>
              <div align="left">
              maven itest</div>
            </td>
            <td>
              <div align="left">
              To run the online-mode tests for say the modules/integration
              Run "maven itest" from modules/integration</div>
            </td>
          </tr>
          <tr>
            <td>
              <div align="left">
              maven test itest</div>
            </td>
            <td>
              <div align="left">
              To run all tests for say the modules/integration     Run "maven
              test itest" from modules/integration</div>
            </td>
          </tr>
          <tr>
            <td>
              <div align="left">
              maven -g</div>
            </td>
            <td>
              <div align="left">
              List down all the commands available with maven</div>
            </td>
          </tr>
          <tr>
            <td>
              <div align="left">
              maven multiproject</div>
            </td>
            <td>
              <div align="left">
              generate this site</div>
            </td>
          </tr>
          <tr>
            <td>
              <div align="left">
              maven idea:multiproject</div>
            </td>
            <td>
              <div align="left">
              generate IDEA .ipr, .iml and .iws project files</div>
            </td>
          </tr>
          <tr>
            <td>
              <div align="left">
              maven -Dmaven.test.skip=true</div>
            </td>
            <td>Builds Axis2 and skips all the tests</td>
          </tr>
          <tr>
            <td>maven dist-min-bin </td>
            <td>Will generate the binary version of Axis2 minimal distribution </td>
          </tr>
          <tr>
            <td>maven dist-min-src</td>
            <td>Will generate the source version of Axis2 minimal distribution </td>
          </tr>
          <tr>
            <td>maven dist-std-bin </td>
            <td>Will generate the binary version of Axis2 standard distribution </td>
          </tr>
          <tr>
            <td>maven dist-std-bin </td>
            <td>Will generate the source version of Axis2 standard distribution </td>
          </tr>
		  <tr>
            <td>maven release </td>
            <td>Generate all the distributales for Axis2 </td>
          </tr>
		  <tr>
            <td>maven clean jar -Dmaven.test.skip=true -o </td>
            <td>This will clean all the target folder and compile your source, without running the tests or downloading snapshots of dependancies. This is the quickest way of compiling Axis2 sources. However it is highly recommended to run the tests all the time </td>
          </tr>
        </tbody>
      </table>
      <br>
    </ol>
    <p></p>
  </li>
</ol>
</body>
</html>
