По какой-то причине нам нужен xdb.jar из Oracle XDK. Этот jar зависит от xmlparserv2.jar. Фактическая проблема заключается в том, что xmlparserv2.jar поставляется с некоторыми файлами конфигурации провайдера (META-INF/services). В банке есть поставщики услуг для javax.xml.transform.TransformerFactory, javax.xml.parsers.SAXParserFactory и javax.xml.parsers.DocumentBuilderFactory. . Реализации (от oracle.*) не работают вместе с некоторыми другими частями нашего программного обеспечения (им нужны стандартные фабрики).
Как я могу сказать своему приложению, что оно не должно использовать внешнего поставщика услуг из банки?
Ответы (4)
Вы можете использовать отдельные загрузчики классов, чтобы изолировать банки от остальной части приложения. Этот вопрос касается этого.
person
M Platvoet
schedule
21.06.2011
Вы можете просто удалить эти классы из xmlparserv2.jar
person
Fortega
schedule
20.06.2011
Извините, но это невозможно. Лицензия xmlparserv2.jar этого не позволяет. И xmlparserv2.jar нужны эти классы.
- person alexvetter; 21.06.2011
см. здесь — «Приоритет пути к классам JNLP 1,5 против 1,6»
person
Bozho
schedule
20.06.2011
Спасибо, но это не решает мою проблему. xmlparserv2.jar перезаписывает классы, которые находятся в файле jre. Я не могу загрузить xmlparserv2.jar перед jre. (Могу я?)
- person alexvetter; 20.06.2011
вот что обсуждается в выпуске - как и под какими версиями.
- person Bozho; 20.06.2011
Хорошо, тогда я не очень понимаю обходной путь. В состав xmlparserv2.jar входят следующие пакеты: org.xml.sax.* org.w3c.dom.* oracle.xml.* javax.xml.* Вероятно, проблема связана с пакетом javax.xml.*... Но как Я говорю среде выполнения не использовать эту часть банки?
- person alexvetter; 21.06.2011
Я решил проблему, удалив службы (META-INF/services). Мы запустили модульные тесты, и все заработало. Даже те части нашего программного обеспечения, которые зависят от xmlparserv2.jar/xdb.jar.
person
alexvetter
schedule
31.10.2011