java - 使用 Spring-WS 时如何修复 Java 中转换 stax 源错误?

标签 java web-services jaxb apache-camel spring-ws

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

最佳答案

无明显原因地开始引发并在服务器重新启动后神奇地消失的 JAXP 异常通常表明应用程序服务器上运行的某些代码修改了 JAXP 使用的系统属性之一,以便 JAXP 使用的工厂改变。

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

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

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

关于java - 使用 Spring-WS 时如何修复 Java 中转换 stax 源错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32407106/

相关文章:

java - 向 inputText 添加掩码后丢失默认输入

java - 整洁的代码 - 如何破坏返回 String 的方法

java - 使用带有 Java 的 Selenium WebDriver 在新页面上查找 WebElement

multithreading - ReSTLet客户端句柄Web服务关闭

xml - 如何通过 JAXB 解析包含命名空间的 xml

java - JDBC setMaxRows 数据库使用

java - WSIT Metro 版本 2.3 WSRM1124 错误

linux - 在 virtualbox 中从 Ubuntu 14.04 桌面版本制作网络服务器

java - 使用 JAXB 的 XmlSerialize 3rd 方类

java - JAXB Marshal 异常 : . Impl 类或其任何父类(super class)都不为任何此上下文所知