Author: veithen
Date: Tue Jun 21 21:42:32 2011
New Revision: 1138203

URL: http://svn.apache.org/viewvc?rev=1138203&view=rev
Log:
AXIS2-4917: Added documentation explaining how to deploy Axis2 on WebSphere, 
especially WAS 7.0.

Modified:
    axis/axis2/java/core/trunk/src/site/xdoc/docs/app_server.xml

Modified: axis/axis2/java/core/trunk/src/site/xdoc/docs/app_server.xml
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/src/site/xdoc/docs/app_server.xml?rev=1138203&r1=1138202&r2=1138203&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/src/site/xdoc/docs/app_server.xml (original)
+++ axis/axis2/java/core/trunk/src/site/xdoc/docs/app_server.xml Tue Jun 21 
21:42:32 2011
@@ -28,10 +28,10 @@
         <p>This document provides configuration information required for
         your Application Server to run Apache Axis2 to its fullest
         potential.</p>
-        <section name="WebLogic/ WebSphere">
+        <section name="WebLogic">
             <subsection name="Use exploded configuration to deploy Axis2 WAR">
                 <p>We recommend using the exploded configuration to deploy 
Axis2
-                WAR in WebLogic and WebSphere application servers to support 
the
+                WAR in WebLogic application server to support the
                 hotupdate/ hotdeployment features in Axis2. However, if you 
want to
                 deploy custom WARs, say in a clustering environment, you need 
to
                 add two additional files into the WEB-INF named 
"services.list" and
@@ -62,7 +62,7 @@
                 directory of a Web application in preference to application or
                 system classes. This is a recommended approach since it only
                 impacts a single Web module.</p>
-                <p>Please refer to the following documents in WebLogic/ 
WebSphere
+                <p>Please refer to the following documents in WebLogic
                 for more information:</p>
                 <ul>
                 <li><a href=
@@ -72,9 +72,6 @@
                 <li><a href=
                 
"http://e-docs.bea.com/wls/docs81/webapp/deployment.html";>Redeploying
                 a Web Application in Exploded Directory Format</a></li>
-                <li><a href=
-                
"http://publib.boulder.ibm.com/infocenter/wsiihelp/v8r3/index.jsp?topic=/com.ibm.websphere.ii.product.ce.doc/configuring/iiyviigdepwebexpl.htm";>
-                Deploying the Web application in exploded form</a></li>
                 </ul>
             </subsection>
             <subsection name="Lack of namespacing on serialised items">
@@ -95,5 +92,52 @@
                 to be on the application classpath.</p>
             </subsection>
         </section>
+        <section name="WebSphere">
+            <subsection name="Avoiding conflicts with WebSphere's JAX-WS 
runtime">
+                <p>
+                    The JAX-WS runtime in WebSphere Application Server is 
based on a modified version of Axis2 and these
+                    classes are visible to application class loaders. This 
means that when deploying
+                    a standard version of Axis2 on WAS 7.0 (and WAS 6.1 with 
the Web Services feature pack installed),
+                    special configuration is required to avoid conflicts with 
the Axis2 classes used internally by WebSphere.
+                    In particular it is necessary to change the class loader 
policy of the Web module to parent last. However,
+                    this is not sufficient because Axis2 creates additional 
class loaders for modules and services, and
+                    these use parent first class loading by default. 
Therefore, two things must be done to make a standard
+                    Axis2 distribution work with WebSphere:
+                </p>
+                <ol>
+                    <li>
+                        Before deploying the Axis2 WAR, edit the 
<tt>axis2.xml</tt> file and set the
+                        <tt>EnableChildFirstClassLoading</tt> parameter to 
<tt>true</tt>.
+                        Please note that this parameter is only supported in 
Axis2 1.5.5 or higher.
+                    </li>
+                    <li>
+                        After deployment, modify the application configuration 
to enable parent last class loading
+                        for the Web module: in the WebSphere admin console, go 
the the configuration page for
+                        the enterprise application, click on <em>Manage 
Modules</em> and locate the WAR containing
+                        Axis2 (in the default WAR distribution, the module is 
called <em>Apache-Axis2</em>), then
+                        change the <em>Class loader order</em> option to 
<em>Classes loaded with local class
+                        loader first (parent last)</em>. Note that the class 
loader policy for the enterprise
+                        application itself (which can be specified under 
<em>Class loading and update detection</em>)
+                        is irrelevant, unless a custom EAR distribution is 
used that includes the Axis2 libraries
+                        in the EAR instead of the WAR.
+                    </li>
+                </ol>
+            </subsection>
+            <subsection name="Deploying services and modules">
+                <p>
+                    By default (i.e. if the <em>Distribute application</em> 
option has not been disabled explicitly)
+                    WebSphere will deploy the application in exploded form. 
The standard location for these files is
+                    in the <tt>installedApps</tt> subdirectory in the 
WebSphere profile directory. This means that AAR
+                    and MAR files can simply be deployed by dropping them into 
the corresponding folders. In this
+                    scenario, hot deployment is supported and there is no need 
to update the <tt>services.list</tt>
+                    and <tt>modules.list</tt> files. 
+                </p>
+                <p>
+                    However, the directory is still under control of WebSphere 
and manually deployed AAR and MAR files
+                    will be removed e.g. when the application is upgraded. It 
may therefore be a good idea to configure
+                    Axis2 to use a repository location outside of the 
<tt>installedApps</tt> directory.
+                </p>
+            </subsection>
+        </section>
     </body>
 </document>


Reply via email to