0

在域模式下使用 JBoss AS 7.0.2 时,我在将org.apache.xalan.xsltc.trax.SmartTransformerFactoryImpl设置为javax.xml.transform.TransformerFactory时遇到问题。如果我将以下属性放在standalone.xml 中,一切正常,但如果我在host.xml(或domain.xml)中的服务器中添加相同的属性,则服务器将无法启动。

<property name="javax.xml.transform.TransformerFactory" value="org.apache.xalan.xsltc.trax.SmartTransformerFactoryImpl"/>

我在我的部署中有 xalan 库,但我什至尝试将它作为一个全局模块。没有任何效果。我在控制台中注意到以下错误:

[Server:server-one] Exception in thread "main" javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.xsltc.trax.SmartTransformerFactoryImpl not found
[Server:server-one]     at javax.xml.transform.TransformerFactory.newInstance(TransformerFactory.java:108)
[Server:server-one]     at __redirected.__TransformerFactory.<clinit>(__TransformerFactory.java:66)
[Server:server-one]     at __redirected.__JAXPRedirected.initAll(__JAXPRedirected.java:82)
[Server:server-one]     at org.jboss.modules.Module$1.run(Module.java:88)
[Server:server-one]     at org.jboss.modules.Module$1.run(Module.java:75)
[Server:server-one]     at java.security.AccessController.doPrivileged(Native Method)
[Server:server-one]     at org.jboss.modules.Module.<clinit>(Module.java:75)
[Server:server-one]     at org.jboss.modules.Main.main(Main.java:257)

如果我只是删除该属性,则服务器可以正常工作。

我还可以做些什么??

我正在使用 JBoss AS 7.0.2 Final。

JBoss 社区中相同问题的链接

4

3 回答 3

0

您必须将依赖项添加到 MANIFEST 文件中。
例如,使用 SmartTransformerFactoryImpl 类的 JAR 模块应该在 MANIFEST 文件中有以下行:

Dependencies: org.apache.xalan

如果您使用的是 maven,则可以通过将以下配置添加到 maven JAR 插件来配置它以在打包时添加此行:

<configuration>
    <archive>
        <manifestEntries>
            <Dependencies>org.apache.xalan</Dependencies>
        </manifestEntries>
    </archive>
</configuration>
于 2013-03-05T10:06:14.923 回答
0

我的猜测是 xalan 被放置在 JBoss 内的某个地方,并且在早期启动阶段还没有加载。

可能的解决方案:

  • 推迟系统属性分配
  • 将 xalan 显式放置在 jvm 类路径上,以便在早期启动时加载它
于 2013-02-28T17:40:34.413 回答
0

在使用 apache2 和 tomcat7 从旧的(Lenny)Debian 版本迁移 webapp 到 Debian Jessie 的过程中,我遇到了同样的问题。由于Direct Web Remoting: TransformerFactoryConfigurationError ,我找到了解决方案的开始。

我通过将 xalan.jar和 xsltc.jar一起移动到 CATALINA_HOME/lib 来完全解决它,在我的配置中是 /usr/share/tomcat7/lib。xalan.jar “单独”是不够的;它必须与 xsltc.jar“同步”,因为在 xalan.jar \org\apache\xalan\xsltc 是空的,而 xsltc.jar 有 \org\apache\xalan\xsltc\trax 并且你有 TransformerFactoryImpl 类。我在这个问题上受苦了一段时间,所以我希望分享我的经验可能对某人有所帮助。

于 2017-08-16T21:20:31.213 回答