Java Oracle 10g Webapp中的JAXB 2

Java Oracle 10g Webapp中的JAXB 2,java,oracle,oracle10g,jaxb,classpath,Java,Oracle,Oracle10g,Jaxb,Classpath,我有一个使用的web应用程序。在部署到上时,在尝试封送XML文件时,我会立即收到错误。事实证明,Oracle在一个jar中包含了一个偷偷改名为“xml.jar”的文件 如何强制我的webapp使用我在WEB-INF/lib中部署的jaxb JAR版本,而不是Oracle强制进入类路径的版本,最好是通过配置,而不是在我的代码中乱搞类加载器?使用不同于Oracle实例的JVM,并确保它们的库不在类路径中。我假设您使用的是以前的BEA Weblogic服务器 您可以将weblogic.xml文件添加到

我有一个使用的web应用程序。在部署到上时,在尝试封送XML文件时,我会立即收到错误。事实证明,Oracle在一个jar中包含了一个偷偷改名为“xml.jar”的文件


如何强制我的webapp使用我在
WEB-INF/lib
中部署的jaxb JAR版本,而不是Oracle强制进入类路径的版本,最好是通过配置,而不是在我的代码中乱搞类加载器?

使用不同于Oracle实例的JVM,并确保它们的库不在类路径中。

我假设您使用的是以前的BEA Weblogic服务器

您可以将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>

真的
(作为对评论的回应,我还没有足够的声誉:-)


事实上,这是地狱,因为它是“要么全有,要么全无”。这似乎是另一种更具条件的方式。不过我自己还没有试过…

如果您仍然在使用Oracle的OC4J,那么在您的EAR的META-INF中包含他们的orion-application.xml。它应该看起来像

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


…跳过您想要的包。

不要认为这是一个真正的选项-webapp部署在Oracle 10g应用程序容器中,因此与该JVM绑定。这是一个很好的答案,可能会在任何理智的世界中解决我的问题。事实证明,我们以前有这样的设置(我不知道10g是基于Weblogic的),但我的一个团队告诉我,它被拿走是因为它破坏了其他东西。又是地狱。唉。无论如何,谢谢。好吧,为了反驳我自己,我尝试将10g配置为更喜欢我的webapp类,但现在出现了另一个错误-请参见此问题: