JAXB 2 в веб-приложении Oracle 10g - PullRequest
3 голосов
/ 25 сентября 2008

У меня есть веб-приложение, которое использует JAXB 2 . При развертывании на сервере приложений Oracle 10g я получаю ошибки, как только пытаюсь упорядочить файл XML. Оказывается, что Oracle включает JAXB 1 в банку, скрытно переименованную в "xml.jar".

Как заставить мое веб-приложение использовать версию jaxb jar, которую я развернул в WEB-INF/lib, поверх той, которую Oracle ввел в путь к классам, в идеале через конфигурацию, вместо того, чтобы возиться с загрузчиками классов в моем коде?

Ответы [ 3 ]

2 голосов
/ 25 сентября 2008

Я полагаю, вы используете бывший 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, потому что это "все или ничего". Кажется, есть другой, более условный способ, описанный здесь . Хотя сам этого не пробовал ...

1 голос
/ 13 февраля 2009

Если вы все еще используете Oracle OC4J, включите их orion-application.xml в META-INF вашего EAR. Это должно выглядеть примерно так ...

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

... с пакетом, который вы хотите пропустить.

0 голосов
/ 25 сентября 2008

Используйте другую JVM, отличную от вашего экземпляра Oracle, и убедитесь, что их библиотеки не находятся в вашем пути к классам.

...