使用 Spring-WS 时如何解决此转换 Java 中的 stax 源错误?

How do I fix this transforming the stax source error in Java when using Spring-WS?

我目前正在使用 Camel Spring-WS 将我的端点公开为 Web 服务。有时当我使用 SoapUI 测试 Web 服务时,我会收到这个奇怪的错误 "can't transform a source of type javax.xml.transform.stax.staxsource"。但是,当我重新启动 Jboss 服务器(部署我的项目的位置)时,它消失了,我得到了正确的响应。目前我正在使用服务器重启作为解决方法。有没有办法永久摆脱这个问题。我不想在生产中面对这些问题。非常感谢任何建议。

JAXP 异常开始无缘无故地抛出并在服务器重启后神奇地消失,这通常表明应用程序服务器上的某些代码 运行 修改了 JAXP 使用的系统属性之一,因此JAXP 使用的工厂发生变化。

在您的情况下,这可能是由更改 javax.xml.transform.TransformerFactory 系统 属性 的代码引起的,这样做会配置不支持 StAXSource 的新 XSLT 实现。

请注意,在 JavaEE 环境中,应用程序代码不应尝试更改系统属性,因为它们具有 JVM 范围。

为了确认这是您问题的根本原因,您可以尝试使用 JMX 连接到服务器,以便在运行时检查系统属性,或者您可以只向您的应用程序添加一些代码来记录相关系统的值属性.