2011-06-20 58 views
1

由於某些原因,我們需要Oracle XDK中的xdb.jar。這個jar取決於xmlparserv2.jar。實際的問題是xmlparserv2.jar帶有一些提供者配置文件(META-INF/services)。該jar具有的服務提供者javax.xml.transform.TransformerFactory,javax.xml.parsers.SAXParserFactoryjavax.xml.parsers.DocumentBuilderFactory。這些實現(來自oracle。*)不能與我們軟件的其他部分一起工作(他們需要標準工廠)。如何告訴我的應用程序它不應該使用來自jar的外部服務提供者?

回答

0

我通過刪除服務(META-INF/services)來解決問題。我們運行了單元測試,一切正常。即使是依賴於xmlparserv2.jar/xdb.jar的軟件部分。

0

你可以只從xmlparserv2.jar

+0

對不起,但這是不可能的。 xmlparserv2.jar的許可證不允許這樣做。而xmlparserv2.jar需要這些類。 – alexvetter

0

See here刪除這些類 - 「JNLP類路徑優先級1.5 VS 1.6」

+0

謝謝,但它不能解決我的問題。 xmlparserv2.jar覆蓋了jre中的類。我無法在jre之前加載xmlparserv2.jar。 (我可以嗎?) – alexvetter

+0

這就是問題所討論的 - 如何以及在什麼版本下。 – Bozho

+0

好的,那麼我不太瞭解解決方法。 xmlparserv2.jar包含以下軟件包: org.xml.sax。* org.w3c.dom。* oracle.xml。* javax.xml。* 問題可能來自javax.xml。*包。 ..但我怎麼能告訴運行時不使用這部分的jar? – alexvetter

1

你可以使用單獨的類加載器的罐子從應用程序的其餘部分隔離。這question關於它覆蓋。

相關問題