您好我正在尝试让axis2在Websphere 7上运行,我在apache轴站点中进行了sugested配置(更改了axis2.xml“EnableChildFirstClassLoading”参数并将类加载器从“PARENT_FIST”更改为“PARENT_LAST”包含axis2的webmodule
然而,在同一个EAR中,还有另一个带有JSP和struts的Web应用程序,在更改类加载器后停止工作(由于jar库版本问题),我的deployment.xml看起来与此类似:
<?xml version="1.0" encoding="UTF-8"?>
<appdeployment:Deployment xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:appdeployment="http://www.ibm.com/websphere/appserver/schemas/5.0/appdeployment.xmi" xmi:id="Deployment_1335990730424">
<deployedObject xmi:type="appdeployment:ApplicationDeployment" xmi:id="ApplicationDeployment_1335990730424" startingWeight="10">
<modules xmi:type="appdeployment:WebModuleDeployment" xmi:id="WebModuleDeployment_1335990730424" startingWeight="10000" uri="StrutsWeb.war"/>
<modules xmi:type="appdeployment:WebModuleDeployment" xmi:id="WebModuleDeployment_1335990730425" startingWeight="10000" uri="Axis2Web.war" classloaderMode="PARENT_LAST"/>
<classloader xmi:id="Classloader_1335990730424" mode="PARENT_FIRST"/>
</deployedObject>
</appdeployment:Deployment>
从axis2 web模块中删除“PARENT_LAST”后,struts模块开始工作,“PARENT_LAST”Web服务工作正常,但struts web模块却没有。似乎类加载器模式更改正在影响两个Web模块。
提前致谢,
答案 0 :(得分:0)
在WebSphere Application Server中(几乎与所有应用程序服务器一样),有一个类加载器的层次结构:
Application server class loaders
| Includes WAS_HOME/plugins, WAS_HOME/lib, etc.
|
+-- Application class loader
| Includes files in lib/ folder of the .ear
| Includes all JARs referenced from Class-Path in all .war
|
+-- StrutsWeb.war class loader
| Includes WEB-INF/classes and all JARs in WEB-INF/lib
|
+-- Axis2Web.war
Includes WEB-INF/classes and all JARs in WEB-INF/lib
配置代码段中的<classloader>
元素嵌套在ApplicationDeployment
中,因此它对应于应用程序类加载器。您可能不想修改此元素,您可能希望修改各个WAR模块的委派模式。但是,如果更改此设置有效,那么您可能在应用程序类加载器类路径上有JAR,它实际上应位于WAR模块的WEB-INF / lib中。