我们有一个带有singleton ejb的ear应用程序,用于设置JAXP配置。 我们通过代码使用System.setProperty():
设置TransformerFactory系统属性System.setProperty("javax.xml.transform.TransformerFactory", "org.apache.xalan.processor.TransformerFactoryImpl");
jboss-deployment-structure.xml文件内容如下:
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<ear-subdeployments-isolated>false</ear-subdeployments-isolated>
<deployment>
<dependencies>
<module name="org.apache.xalan" slot="main" export="true"/>
<module name="org.apache.xerces" slot="main" export="true" />
</dependencies>
</deployment>
</jboss-deployment-structure>
我们得到了例外:
Exception in thread "main" javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found
如果我使用以下代码行而不是设置系统属性,它可以工作。
TransformerFactory.newInstance("org.apache.xalan.processor.TransformerFactoryImpl", TransformerFactory.class.getClassLoader());
我想知道为什么它不起作用。 我是否误解了JBoss模块类加载的问题?