3

JAXB 2を使用する Web アプリケーションがあります。Oracle 10g Application Serverにデプロイすると、XML ファイルをマーシャリングしようとするとすぐにエラーが発生します。Oracle はJAXB 1を、密かに「xml.jar」という名前に変更された jar に組み込んでいることが判明しました。

WEB-INF/libコード内のクラスローダーをいじる必要がなく、理想的には構成を通じて、Oracleがクラスパスに強制したバージョンよりもデプロイしたjaxb jarのバージョンを使用するようにwebappに強制するにはどうすればよいですか?

4

3 に答える 3

2

以前のBEAWeblogicServerを使用していると思いますか?

次のように、weblogic.xmlファイルをWEB-INFに追加できます。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
    <container-descriptor>
   <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>
</weblogic-web-app>

(コメントへの返信として、私はまだ十分な評判を持っていません:-))

確かに、DLLは「オールオアナッシング」であるため地獄です。ここで説明する、別のより条件付きの方法があるようです。自分で試したことはありませんが...

于 2008-09-25T10:05:53.287 に答える
1

Oracle の OC4J をまだ使用している場合は、その orion-application.xml を EAR の META-INF に含めます。それは次のように見えるはずです...

<?xml version="1.0" encoding="UTF-8"?>
<orion-application>
    <imported-shared-libraries>
        <remove-inherited name="skip.this.package"/>
    </imported-shared-libraries>
</orion-application>

...スキップしたいパッケージで。

于 2009-02-13T20:55:29.013 に答える
0

Oracle インスタンスとは異なる JVM を使用し、それらのライブラリがクラスパスに含まれていないことを確認してください。

于 2008-09-25T09:58:52.993 に答える