# Apache Axis2/C Frequently Asked Questions

Mentioned below are a list of Frequently Asked Questions appearing on Axis2/C mailing lists, and Forums.

For questions not appearing below, or for any further clarifications please do not hesitate to contact the Apache Axis2/C user mailing list: axis-c-user@ws.apache.org (Subscription details are available on the Axis2 site.) Please remember to prefix the subject with [Axis2].

## Contents

1. Introduction
   1. What is Axis2/C?
   2. Licensing
   3. How can I obtain Axis2/C?
   4. How can I get involved?
2. Support
   1. Does Axis2/C support code generation?
   2. Does Axis2/C support SSL?
   3. Does Axis2/C support compression?
   4. Does Axis2/C support SOAP Session management?
   5. Can I use Axis2/C with a proxy?
   6. Does Axis2/C work on my platform?
3. How to?
   1. How can I enable the Guththila parser?
   2. How do I turn off MTOM globally?
   3. How can I use Axis2/C with C++?
   4. How could I secure SOAP messages?
4. Why do?
   1. Why do I get an "Unresolved external symbol" error?
   2. Why can't I run the samples?
   3. libxml2 is installed but I get "libxml2 not found"?

## 1. Introduction

### 1.1 What is Axis2/C?

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.

### 1.2 Licensing

Apache Axis2/C is released under the Apache 2.0 License, 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.

### 1.3 How can I obtain Axis2/C?

Apache Axis2/C can be freely downloaded at the Axis2/C Download Page 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.

### 1.4 How can I get involved?

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 Team Page.

## 2. Support

### 2.1 Does Axis2/C support code generation?

Yes, Axis2/C supports code generation using the WSDL2C tool. Information on how to use this tool can be found in our documentation.

### 2.2 Does Axis2/C support SSL?

Yes, Axis2/C supports SSL enabled communication. More information can be found in our documentation.

### 2.3 Does Axis2/C support compression?

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.

### 2.4 Does Axis2/C support SOAP Session management?

No, there is no support for SOAP Sessions in Axis2/C.

### 2.5 Can I use Axis2/C with a proxy?

Yes. This requires a few changes to the axis2.xml file. Information about this can be found in our documentation.

### 2.6 Does Axis2/C work on my platform?

Currently Axis2/C has been ported to following platforms.
1. Linux based distributions(Debian, Ubuntu, Redhat Linux etc...,)
2. Sun Solaris 10(intel)
3. Mac OS X
4. Microsoft Windows
Patches are welcome!

## 3. How to?

### 3.1 How can I enable the Guththila parser?

In Windows you have to put the `ENABLE_GUTHTHILA = 1` in the `build/win32/configure.in` file. In Linux you have to specify the configuration option `--enable-guththila=yes`. 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 (`guththila.lib` and `guththila/include`).

### 3.2 How do I turn off MTOM globally?

MTOM can be disabled by commenting out the following line from your axis2.xml. (`<parameter name="enableMTOM" locked="false">true</parameter>`)

### 3.3 How can I use Axis2/C with C++?

Just add the following code to your C source files and then use a C++ compiler.

     #ifdef __cplusplus
     extern "C"{
     #endif
     /* YOUR C CODE HERE */
     #ifdef __cplusplus
     }
     #endif

### 3.4 How could I secure SOAP messages?

To secure SOAP messages, you need to engage Apache Rampart/C as a module, which can be downloaded from here. Please refer the installation guide and configuration guide for more details.

## 4. Why do?

### 4.1 Why do I get an "Unresolved external symbol" error?

Make sure that your `WSFCPP_HOME/lib` directory is added to your `PATH` Environment Variable.

### 4.2 Why can't I run the samples?

This is usually because the `WSFCPP_HOME` Environment Variable is not set to the correct path. Make sure that it is set to your Axis2/C installation path.

### 4.3 libxml2 is installed but I get "libxml2 not found"?

Make sure that you have installed the libxml2-dev packages.

1. If you are using a Debian based system run
$ apt-get install libxml2-dev

2. If you are using a RedHat/Fedora based system run
$ yum install libxml2-dev

3. If you install libxml2 from source you will not get this error