<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<html><head><title>Apache Axis2/C - FAQ</title>

</head>

<body>
<h1>Apache Axis2/C Frequently Asked Questions</h1>
<p>Mentioned below are a list of Frequently Asked Questions
appearing on Axis2/C <a href="http://axis.apache.org/axis2/c/core/mail-lists.html">mailing
lists</a>, and Forums.</p>
<p>For questions not appearing below, or for any further
clarifications please do not hesitate to contact the Apache Axis2/C
user mailing list: <a href="mailto:c-user@axis.apache.org">c-user@axis.apache.org</a>
(Subscription details are available on the <a href="http://axis.apache.org/axis2/c/core/mail-lists.html">Axis2
site</a>.) Please
remember to prefix the subject with [Axis2].</p>
<p style="margin-bottom: 0in;"><br />
</p>
<a name="0_contents"></a>
<h2>Contents</h2>
<ol>
<li><a href="#1_introduction">Introduction</a>
<ol>
<li><a href="#faq_1_1">What is Axis2/C?</a></li>
<li><a href="#faq_1_2">Licensing</a></li>
<li><a href="#faq_1_3">How can I obtain
Axis2/C?</a></li>
<li><a href="#faq_1_4">How can I get involved?</a></li>
</ol>
</li>
<li><a href="#2_support">Support</a>
<ol>
<li><a href="#faq_2_1">Does Axis2/C support
code generation?</a></li>
<li><a href="#faq_2_2">Does Axis2/C support
SSL?</a></li>
<li><a href="#faq_2_3">Does Axis2/C support
compression?</a></li>
<li><a href="#faq_2_4">Does Axis2/C support
SOAP Session management?</a></li>
<li><a href="#faq_2_5">Can I use Axis2/C with
a proxy?</a></li>
<li><a href="#faq_2_6">Does Axis2/C work on my platform?</a></li>
</ol>
</li>
<li><a href="#3_how_to">How to?</a>
<ol>
<li><a href="#faq_3_1">How can I enable the
Guththila parser?</a></li>
<li><a href="#faq_3_2">How do I turn off MTOM
globally?</a></li>
<li><a href="#faq_3_3">How can I use Axis2/C
with C++?</a></li>
<li><a href="#faq_3_4">How could I secure SOAP
messages?</a></li>
</ol>
</li>
<li><a href="#4_why_do">Why do?</a>
<ol>
<li><a href="#faq_4_1">Why do I get an
"Unresolved external symbol" error?</a></li>
<li><a href="#faq_4_2">Why can't I run the
samples?</a></li>
<li><a href="#faq_4_3">libxml2 is installed
but I get "libxml2 not found"?</a></li>
</ol>
</li>
</ol>
<p style="margin-bottom: 0in;"><br />
</p>

<h2>1. Introduction</h2>
<p></p>

<h3>1.1 What is Axis2/C?</h3>
<p>Apache Axis2/C is a web services engine implemented in the C
programming language based around the Axis2 architecture. Axis2/C can
be used to provide and consume web services. It has been implemented
with portablity and the ability to embed and could readily be used as a
web services enabler for other software.</p>

<h3>1.2 Licensing</h3>
<p>Apache Axis2/C is released under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0
License</a>, a copy of the License is found in the LICENSE file
found in your distribution. Apache Axis2/C also depends on several
other projects of which licensing information are also included in the
LICENSE file.</p>

<h3>1.3 How can I obtain Axis2/C?</h3>
<p>Apache Axis2/C can be freely downloaded at the <a href="http://axis.apache.org/axis2/c/core/download.cgi">Axis2/C
Download Page</a> or at any other mirror. Please note that
Axis2/C source and binary packages are tailor made to suit specific
classes of operating systems. Please make sure to choose the one that
best fits your requirement as well as your operating system.</p>

<h3>1.4 How can I get involved?</h3>
<p>Apache Axis2/C is a result of a highly involved list of apache
committers, developers, as well as a keen group of users. For more
information on our team, and how to get involved, please visit our <a href="http://axis.apache.org/axis2/c/core/team-list.html">Team Page</a>.</p>
<p style="margin-bottom: 0in;"><br />
</p>

<h2>2. Support</h2>
<p></p>

<h3>2.1 Does Axis2/C support code generation?</h3>
<p>Yes, Axis2/C supports code generation using the WSDL2C tool.
Information on how to use this tool can be found in our <a href="http://axis.apache.org/axis2/c/core/docs/axis2c_manual.html#wsdl2c">documentation</a>.</p>

<h3>2.2 Does Axis2/C support SSL?</h3>
<p>Yes, Axis2/C supports SSL enabled communication. More
information can be found in our <a href="http://axis.apache.org/axis2/c/core/docs/axis2c_manual.html#ssl_client">documentation</a>.</p>

<h3>2.3 Does Axis2/C support compression?</h3>
<p>Axis2/C itself does not support compression. If you are using
mod_axis2 and the Apache HTTP server, you can also mod_deflate for
compression. Also, you can enable compression by using libcurl as the
http sender on the client side.</p>

<h3>2.4 Does Axis2/C support SOAP Session management?</h3>
<p>No, there is no support for SOAP Sessions in Axis2/C.</p>

<h3>2.5 Can I use Axis2/C with a proxy?</h3>
<p>Yes. This requires a few changes to the axis2.xml file.
Information about this can be found in our <a href="http://axis.apache.org/axis2/c/core/docs/axis2c_manual.html#proxy">documentation</a>.</p>
<a id="faq_2_6"></a><h3>2.6 Does Axis2/C work on my platform?</h3>
<p>Currently Axis2/C has been ported to following platforms.<br>
1. Linux based distributions(Debian, Ubuntu, Redhat Linux etc...,) <br>
2. Sun Solaris 10(intel) <br>
3. Mac OS X <br>
4. Microsoft Windows<br>
Patches are welcome! 
<p style="margin-bottom: 0in;"><br />
</p>

<h2>3. How to?</h2>
<p></p>

<h3>3.1 How can I enable the Guththila parser?</h3>
<p>In Windows you have to put the <code>ENABLE_GUTHTHILA =
1</code> in the <code>build/win32/configure.in</code>
file. In Linux you have to specify the configuration option <code>--enable-guththila=yes</code>.
In a Microsoft Visual Studion Project (VC Project) this is little bit
difficult. You have to add the guththila project to the existing
Axis2/C solution. Then in the axis2_parser project, we have to remove
the libxml wrapper files and add the guththila_wrapper files. Also in
the axis2_parser project we have to change the include files and linker
input files (libs) to corresponding guththila files (<code>guththila.lib</code>
and <code>guththila/include</code>).</p>

<h3>3.2 How do I turn off MTOM globally?</h3>
<p>MTOM can be disabled by commenting out the following line from
your axis2.xml.
(<code>&lt;parameter name="enableMTOM"
locked="false"&gt;true&lt;/parameter&gt;</code>)</p>

<h3>3.3 How can I use Axis2/C with C++?</h3>
<p>Just add the following code to your C source files and then
use a C++ compiler.
</p>
<pre> #ifdef __cplusplus <br /> extern "C"{<br /> #endif<br /> /* YOUR C CODE HERE */<br /> #ifdef __cplusplus<br /> }<br /> #endif<br /></pre>

<h3>3.4 How could I secure SOAP messages?</h3>
<p>To secure SOAP messages, you need to engage <a href="http://axis.apache.org/axis2/c/rampart/">Apache Rampart/C</a>
as a module, which can be downloaded from <a href="http://axis.apache.org/axis2/c/rampart/download.cgi">here</a>.
Please refer the <a href="http://axis.apache.org/axis2/c/rampart/docs/installationguide.html">installation
guide</a> and <a href="http://axis.apache.org/axis2/c/rampart/docs/configurations.html">configuration
guide</a> for more details.</p>
<p style="margin-bottom: 0in;"><br />
</p>

<h2>4. Why do?</h2>
<p></p>

<h3>4.1 Why do I get an "Unresolved external symbol" error?</h3>
<p>Make sure that your <code>AXIS2C_HOME/lib</code>
directory is added to your <code>PATH</code> Environment
Variable.</p>

<h3>4.2 Why can't I run the samples?</h3>
<p>This is usually because the <code>AXIS2C_HOME</code>
Environment Variable is not set to the correct path. Make sure that it
is set to your Axis2/C installation path.</p>

<h3>4.3 libxml2 is installed but I get "libxml2 not found"?</h3>
<p>Make sure that you have installed the libxml2-dev packages.</p>
<p style="margin-bottom: 0in;">1. If you are using a
Debian based system run<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $ apt-get install libxml2-dev<br />
</p>
<p style="margin-bottom: 0in;">2. If you are
using a RedHat/Fedora based system run<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $ yum install
libxml2-dev<br />
</p><p style="margin-bottom: 0in;">3. If you install libxml2 from source
you will not get this error<br />
<br />
</p>
<div class="clear">
<hr /></div>
</body></html>
