| <!-- | |
| ~ 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. | |
| --> | |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
| <html xmlns="http://www.w3.org/1999/xhtml"> | |
| <head> | |
| <meta name="generator" content= | |
| "HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" /> | |
| <meta http-equiv="content-type" content="" /> | |
| <title>Axis2 FAQ</title> | |
| <link href="css/axis-docs.css" rel="stylesheet" type="text/css" | |
| media="all" /> | |
| </head> | |
| <body lang="en" xml:lang="en"> | |
| <h1>Frequently Asked Questions on Apache Axis2</h1> | |
| <p>Got a question to be answered on Axis2? Then this document is | |
| just what the doctor ordered.</p> | |
| <h2>Ask your Questions Here</h2> | |
| <p>If you have any other doubts/issues, e-mail your questions | |
| to:</p> | |
| <ul> | |
| <li>Developers : <a href= | |
| "mailto:axis-dev@ws.apache.org">axis-dev@ws.apache.org</a></li> | |
| <li>Users : <a href= | |
| "mailto:axis-user@ws.apache.org">axis-user@ws.apache.org</a></li> | |
| </ul> | |
| <p>Prefix subject with [Axis2]. <a href= | |
| "http://ws.apache.org/axis2/mail-lists.html">Subscribe</a> to our | |
| mailing lists.<a href= | |
| "http://ws.apache.org/axis2/mail-lists.html"></a></p> | |
| <h2>Content of Questions and Answers</h2> | |
| <ul> | |
| <li>General | |
| <ul> | |
| <li><a href="#a1">I'm having a problem using Axis2. What should I | |
| do?</a></li> | |
| </ul> | |
| </li> | |
| <li>Class Loading Issues | |
| <ul> | |
| <li><a href="#b1">How do I access resources in my service /module | |
| archive file?</a></li> | |
| </ul> | |
| </li> | |
| <li>Client API | |
| <ul> | |
| <li><a href="#c1">I want to do Request Response Messaging, Where | |
| should I look?<br /></a></li> | |
| <li><a href="#c2">I want to do One Way Messaging, Where should I | |
| look?</a></li> | |
| <li><a href="#c3">Error: 'to do two Transport Channels the | |
| Addressing Modules must be engaged'</a></li> | |
| <li><a href="#c4">I have engaged addressing, and when I try to | |
| invoke a service I get an exception</a></li> | |
| <li><a href="#c5">What is Axis Repository?</a></li> | |
| </ul> | |
| </li> | |
| <li>Services | |
| <ul> | |
| <li><a href="#e1">How do I have multiple services in one service | |
| archive?</a></li> | |
| </ul> | |
| </li> | |
| <li>Web Archive/ Server Side | |
| <ul> | |
| <li><a href="#f1">I see an internal server error page when I try to | |
| view the WSDL file.<br /></a></li> | |
| </ul> | |
| </li> | |
| </ul> | |
| <h2>General</h2> | |
| <ol> | |
| <li><a name="a1" id="a1"></a><strong>I'm having a problem using | |
| Axis2. What should I do?</strong><br /> | |
| <p>First make sure you go through the user guide and this FAQ. If | |
| you are using a released version of Axis2, then there is a | |
| possibility that your problem has already being fixed in the latest | |
| code. <a href= | |
| "http://ws.zones.apache.org/dist/axis2/nightly/">Download Axis2 | |
| nightly builds</a> and test again.</p> | |
| <p>If the problem still persists, then try to search for your | |
| question in our <a href= | |
| "http://marc.theaimsgroup.com/?l=axis-dev&r=1&w=2">developer</a> | |
| or <a href= | |
| "http://marc.theaimsgroup.com/?l=axis-user&r=1&w=2">user</a> | |
| mailing archives as it might have already being answered.</p> | |
| <p>If your problem is not answered in the mailing list, now is the | |
| best time to post your question to the axis-user mailing list. If | |
| you think it is a bug, please fill a bug report in <a href= | |
| "http://issues.apache.org/jira/browse/AXIS2">JIRA</a>. Please | |
| attach all the supportive information, like your wsdl, schema, | |
| clients, services, stacktraces, etc., to the JIRA issue you | |
| created, as it will help one of our contributors to re-create the | |
| problem. <b>PLEASE DO NOT ASK QUESTIONS USING JIRA; USE IT ONLY AS | |
| AN ISSUE TRACKER.</b></p> | |
| <p>If you are asking for an explanation of a feature in Axis2, | |
| there is a possibility that there is an article or FAQ written on | |
| it. Please search the web as there are lots of articles written and | |
| hosted by various sources on the web.</p> | |
| <p><b>Note</b> : When you ask questions in the mailing list, please | |
| remember that everyone working in our project are volunteers. | |
| No-one can be forced to fix your bugs (See <a href= | |
| "http://www.apache.org/foundation/faq.html#what-is-apache-NOT-about"> | |
| What is Apache not about?</a> ).</p> | |
| <p>Make sure you add enough information about your problem with | |
| stacktraces and any other supportive information. It will improve | |
| the chances of your question being answered. Prefixing your mail | |
| subject with prefixes like "URGENT" will not help you in any means. | |
| Yes we also accept all the blames about Axis2 in these mailing | |
| lists, as those will definitely help us to improve Axis2 :) .</p> | |
| </li> | |
| </ol> | |
| <h2>Class Loading Issues</h2> | |
| <ol> | |
| <li><a name="b1" id="b1"></a><strong>How do I access resources that | |
| I put into my service /module archive file?</strong></li> | |
| <li style="list-style: none; display: inline"> | |
| <p>Axis2 has the notion of service isolation where each service or | |
| module gets its own class loader. Using this class loader you can | |
| access any resource that you put into your service archive file. | |
| You may want to access your resources from different locations. For | |
| example,</p> | |
| <p>1. A third party module wants to access your resources. Then the | |
| scenario is as follows:</p> | |
| <pre> | |
| AxisService myService = | |
| messageContext.getAxisConfiguration().getAxisService("serviceName"); | |
| </pre> | |
| <p>or</p> | |
| <pre> | |
| AxisService myService = msgCtx.getAxisService(); | |
| </pre> | |
| <p>Then you can use the service class loader through which you can | |
| access its resources</p> | |
| <pre> | |
| ClassLoader clsLoader = myService.getServiceClassLoader(); | |
| clsLoader.getResourceAsStream("myResource"); | |
| </pre> | |
| <p>2. To initialize the service implementation class at the | |
| MessageReceiver level, the following steps need to be taken</p> | |
| <pre> | |
| AxisService service = msgCtx.getAxisService(); | |
| ClassLoader clsLoader = service.getServiceClassLoader(); | |
| Class.forName("serviceName",clsLoader,true); | |
| </pre> | |
| <p>NOTE : Axis2 default MessageReciver uses the same technique to | |
| initialize service implementations</p> | |
| <p>3. If you want to load your resources at the service | |
| implementation class, then the scenario is as follows</p> | |
| <pre> | |
| getClass().getClassLoader().getResourceAsStream("myResource"); | |
| </pre></li> | |
| </ol> | |
| <h2>Client API</h2> | |
| <ol> | |
| <li><a name="c1" id="c1"></a><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" | |
| target="_blank">ServiceClient</a> class, for more information | |
| please read the <a href="@axis2_version_dir@/adv-userguide.html" | |
| target="_blank">User's Guide</a></p> | |
| </li> | |
| <li><a name="c2" id="c2"></a><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" | |
| target="_blank">ServiceClient</a>.</p> | |
| </li> | |
| <li><strong>When I try to do a non blocking call with</strong> | |
| useSeparateListener=true | |
| <p>I get the error <i>to do two Transport Channels the Addressing | |
| Modules must be engaged</i>, Why is this?<br /></p> | |
| <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). However, | |
| addressing is enabled by default.</p> | |
| </li> | |
| <li><a name="c4" id="c4"></a><strong>I have engaged addressing, and | |
| when I try to invoke a service I get an exception</strong><br /> | |
| <p>If you have engaged addressing, then you must have wsa:action, | |
| the required WS-Addressing header. You have to call<br /> | |
| <code>option.setAction("urn:myaction");</code>. Note that the | |
| action should be a URI.</p> | |
| </li> | |
| <li><a name="c5" id="c5"></a><strong>What is Axis2 | |
| Repository?</strong><br /> | |
| <p>The Repository stores the configuration of Axis2. The users | |
| should specify the repository folder of the Axis Server (HTTP or | |
| TCP). In the case of Tomcat, it is the webapps/axis2/WEB-INF | |
| folder. The following picture shows a sample repository.</p> | |
| <img src="images/faq/1.jpg" /> | |
| <p>Modules and services have an archive format defined and they are | |
| automatically picked up by Axis2 when they are copied to | |
| corresponding folders.</p> | |
| </li> | |
| </ol> | |
| <h2>Services</h2> | |
| <ol> | |
| <li><a name="e1" id="e1"></a><strong>How do I have multiple | |
| services in one service archive?</strong></li> | |
| <li style="list-style: none; display: inline"> | |
| <p>It's just a matter of writing a services.xml file to configure | |
| the service or services in an archive file. The corresponding | |
| services.xml <strong>must</strong> look as follows,</p> | |
| <pre> | |
| <serviceGroup> | |
| <service <strong>name="myService1"</strong>> | |
| ........................... | |
| </service> | |
| <service <strong>name="myService2"</strong>> | |
| ........................... | |
| </service> | |
| <serviceGroup> | |
| </pre> | |
| <p>NOTE : The name attribute is a compulsory attribute that will | |
| become the name of the services. If you want to have one service in | |
| the archive file, then there are two options. You can either have | |
| one service inside the serviceGroup tag or have only one service | |
| tag, as shown below, in your services.xml, in which case, the name | |
| of the service will be the name of the archive file, which you | |
| cannot override.</p> | |
| <pre> | |
| <service> | |
| ............... | |
| <service> | |
| </pre></li> | |
| </ol> | |
| <h2>Web Archive / Server side</h2> | |
| <ol> | |
| <li><a name="f1" id="f1"></a><strong>I see an internal server error | |
| page when I try to view the WSDL file.</strong><br /> | |
| <p>This happens specifically with Tomcat 4.x and 5.0 in a JDK 1.5 | |
| environment. The reason is that the system picks up a wrong | |
| transformer factory class. This can be solved simply by putting the | |
| <a href= | |
| "http://www.apache.org/dist/java-repository/xalan/jars/">xalan-2.7.0.jar</a> | |
| into the axis2/WEB-INF/lib directory</p> | |
| </li> | |
| </ol> | |
| </body> | |
| </html> |