我有一个使用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地狱是因为它“全有或全无”.似乎还有另一种更有条件的方式,描述为here.虽然我自己还没有尝试过…