0

こんにちは、私は Websphere 7 で axis2 を動作させようとしています。Apache 軸サイトで提案された構成を行いました (axis2.xml の "EnableChildFirstClassLoading" パラメーターを変更し、含まれる Web モジュールのクラスローダーを "PARENT_FIST" から "PARENT_LAST" に変更しました)。軸2)

ただし、同じ 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 モジュールに影響しているようです。

前もって感謝します、

4

1 に答える 1

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 モジュールの委譲モードを変更したいでしょう。ただし、この設定を変更しても効果がある場合は、実際には WAR モジュールの WEB-INF/lib 内にあるはずのアプリケーション クラス ローダー クラス パスに JAR がある可能性があります。

于 2012-05-02T22:15:18.430 に答える