【发布时间】:2011-02-17 13:42:05
【问题描述】:
我需要您的帮助来解决 Tapestry 和 JaxB 之间的冲突。 错误是:
com.sun.xml.stream.ZephyrParserFactory 不能转换为 org.codehaus.stax2.XMLInputFactory2
我找到了解决方法,但它适用于码头:http://tynamo.org/tapestry-resteasy+guide
解决方案似乎是添加一个系统属性来声明:
javax.xml.stream.XMLInputFactory = com.ctc.wstx.stax.WstxInputFactory
但我不知道如何为 Tomcat 执行此操作。我尝试在 web.xml 中这样做:
<env-entry>
<env-entry-name>
javax.xml.stream.XMLInputFactory
</env-entry-name>
<env-entry-value>
com.ctc.wstx.stax.WstxInputFactory
</env-entry-value>
<env-entry-type>
com.ctc.wstx.stax.WstxInputFactory
</env-entry-type>
</env-entry>
没有成功...
我也知道另一种解决方案:)
谢谢你帮助我。
【问题讨论】:
-
JVM 参数中的 -Djavax.xml.stream.XMLInputFactory=com.ctc.wstx.stax.WstxInputFactory 有效。现在我需要将它集成到战争中,就像在 web.xml 中一样
-
您不能将系统属性放在 WAR 中,它们是 JVM 范围的设置
-
看起来 Tapestry 开发人员认为将 Tapestry 耦合到 StAX API (issues.apache.org/jira/browse/TAP5-745) 的特定实现是一个好主意。干得好,伙计们。
标签: tomcat jaxb conflict tapestry