我的軟件需要兩個TransformerFactory實現。我必須爲PDF處理xml和xls/fo(格式化對象)。對於我們希望使用用戶定義的xsl函數的軟件的更新版本,我使用了直接在源代碼中引用的net.sf.saxon.TransformerFactoryImpl。由於數據庫中的舊數據需要使用org.apache.xalan.processor.TransformerFactoryImpl處理舊數據,因此saxon會拋出一個錯誤並且不會呈現PDF。在Wildfly 8.1中設置javax.xml.transform.TransformerFactory
當使用Tomcat時,我只需將「-Djavax.xml.transform.TransformerFactory = org.apache.xalan.processor.TransformerFactoryImpl」設置爲vm參數,這是沒有問題的。
當使用Wildfly設置VM參數會導致wildfly拋出以下異常: 「在線程異常‘主要’javax.xml.transform.TransformerFactoryConfigurationError:提供org.apache.xalan.processor.TransformerFactoryImpl找不到」
xalan.jar包含在我的war文件中。 xalan的jboss特定版本是Wildlfy發行版的一部分。
爲什麼沒有找到?爲什麼Wildfly甚至試圖在啓動野蠻服務時加載工廠? 如何在啓動過程中配置Wildfly以查找xalan變壓器工廠?將模塊條目編寫到standalone.xml或domain.xml中並沒有幫助。
我知道Wildfly中有一個錯誤,說變壓器工廠的重定向不指向Wildfly變壓器工廠,而是指向java缺省值。我認爲這不應該對我的問題有任何影響,因爲我嘗試設置另一個默認值。
任何幫助?
非常感謝。我會試一試。 – 2014-09-23 12:08:24
由於WildFly和JBoss模塊系統處理JAXP的方式,此解決方案將無法正常工作。應該使用線程的上下文類加載器來定位提供者;由於某種原因,它不是或它工作不正確。 – 2016-01-04 21:26:13