无法转换类型为javax.xml.transform.stax.StAXSource的Camel-Springws类型的源代码

时间:2015-10-05 17:46:39

标签: java apache-camel spring-ws

战争部署在服务器中时,偶尔会遇到此问题。重新启动时问题得到解决。有时需要多次重启才能解决问题。

我在上下文中使用了以下bean配置

<bean id="baseCamelMarshallerWSTemplate" class="org.springframework.ws.client.core.WebServiceTemplate" scope="prototype">
    <constructor-arg ref="messageFactory" />
    <property name="transformerFactoryClass" value="com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl"/>
</bean>

我已将baseCamelMarshallerWSTemplate添加到springws端点配置中,如下所示:

from("spring-ws:rootqname:{http://example.com/}GetFoo?endpointMapping=#endpointMapping&webServiceTemplate=baseCamelMarshallerWSTemplate")

但问题似乎发生了。由于限制,无法将变压器工厂设置为com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl作为服务器中的java系统属性。

请提供任何其他解决方案。

1 个答案:

答案 0 :(得分:1)

Camel-Springws提供了一个直接指定变压器工厂的选项,它解决了这个问题。

在bean配置文件中,指定要使用的变换器工厂类

<bean id="transformerFactory" class="com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl"/>

将transformerFactory添加到Springws端点配置中,如下所示:

spring-ws:rootqname:{http://services.com/ServiceV1.0}Request?endpointMapping=#endpointMapping&transformerFactory=#transformerFactory