我有一个使用JAXB 2的Web应用程序。当部署在Oracle 10g Application Server上时,尝试封送XML文件时会出现错误。事实证明,Oracle在一个罐子中包括JAXB 1,该罐子被重命名为“xml.jar”。

如何强制Web应用程序使用我在WEB-INF/lib中部署的jaxb jar版本,而不是Oracle强制将其放入类路径中的版本,理想情况下是通过配置,而不必在我的代码中弄乱类加载器?

最佳答案

我假设您使用以前的BEA Weblogic Server?

您可以将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 hell 是因为它“全有或全无”。 here描述了另一种更有条件的方式。虽然我自己还没有尝试过...

07-24 18:26
查看更多