1

アプリケーションをデプロイするために websphere 7. を使用しています。展開中に、*.ddm ファイルを解析してプロパティを読み取る必要があります。DOMParser を使用してファイルを解析しています。以下はコードです。これは正常に動作していますが、Tomcat です。

InputStream iStream = new BufferedInputStream(new FileInputStream(file));
InputSource iSource = new InputSource(iStream );
DOMParser.parse(iSource);

次の例外を取得します。

[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R Caused by: java.lang.LinkageError:     loading constraint violation: loader "com/ibm/ws/classloader /CompoundClassLoader@2de92de9" previously initiated loading for a different type with name  "org/apache/xml/resolver/helpers/Debug" defined by loader "org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader@602c602c"
[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R     at java.lang.ClassLoader.defineClassImpl(Native Method)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R     at java.lang.ClassLoader.defineClass(ClassLoader.java:274)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:69)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R     at com.ibm.ws.classloader.CompoundClassLoader._defineClass(CompoundClassLoader.java:768)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R     at com.ibm.ws.classloader.CompoundClassLoader.localFindClass(CompoundClassLoader.java:687)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R     at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:510)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R     at java.lang.ClassLoader.loadClass(ClassLoader.java:618)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R     at org.apache.xml.resolver.tools.CatalogResolver.getResolvedEntity(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R     at org.apache.xml.resolver.tools.CatalogResolver.resolveEntity(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R     at org.apache.xerces.util.EntityResolverWrapper.resolveEntity(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R     at org.apache.xerces.impl.XMLEntityManager.resolveEntity(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R     at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R     at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R     at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R     at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R     at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R     at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
[7/19/12 12:42:00:218 IST] 00000022 SystemErr     R     at 
4

1 に答える 1

1

この問題は、WAS で共有参照ライブラリを作成することによって解決されています。

コンテンツ管理用の共有ライブラリを作成する

  1. WebSphere 統合ソリューション コンソールを開始します。

    コンソールについて詳しくは、WebSphere の資料を参照してください。

  2. 「アプリケーション」->「アプリケーション・タイプ」を展開し、「WebSphere エンタープライズ・アプリケーション」をクリックします。

  3. [エンタープライズ アプリケーション] ウィンドウで、コンテンツ管理アプリケーション名を選択します。

  4. 「構成」ページで、「共有ライブラリー参照」をクリックします。

  5. [共有ライブラリ参照] ペインで、コンテンツ管理アプリケーションを選択し、[共有ライブラリの参照] をクリックします。

6 [新規] をクリックします。

  1. [構成] ページで、[名前] ボックスの名前を jars に変更します。

  2. [クラスパス] ボックスに次の 3 行を追加し、パスを WAR ファイルを抽出した場所に変更します。

注: これらの各ファイルは、別々の行に入力する必要があります。

D:\Temp\org.eclipse.osgi_3.3.2.R33x_v20080105.jar D:\Temp\org.apache.xml.resolver_1.1.jar D:\Temp\resource

  1. [クラスの読み込み] チェック ボックスをオンにします。

  2. [適用] をクリックします。

  3. [保存] リンクをクリックして、マスター構成を更新します。

  4. [共有ライブラリの参照] ページで、デプロイされたアプリケーションを選択し、[共有ライブラリの参照] をクリックします。

  5. Shared Library Mapping ページで、作成した共有ライブラリが Available リストに表示されます。矢印ボタンを使用して [選択済み] リストに移動し、[OK] をクリックします。

  6. [共有ライブラリ参照] ページで、DocCenterServer モジュールを選択し、[共有ライブラリの参照] をクリックします。

  7. Shared Library Mapping ページで、作成した共有ライブラリが Available リストに表示されます。矢印ボタンを使用して [選択済み] リストに移動し、[OK] をクリックします。

  8. [保存] リンクをクリックして、マスター構成を更新します。

  9. デプロイされたアプリケーションを再起動して、変更を適用します。

  10. [エンタープライズ アプリケーション] ウィンドウで、WAR ファイルを選択し、[開始] をクリックします。

  11. アプリケーションが開始されると、緑色の矢印がアプリケーション ステータス列に表示されます。

于 2012-08-19T21:21:41.293 に答える