java - Camel-cxf 2.18.2 抛出 TypeConversionException

标签 java apache-camel camel-cxf

我正在尝试将camel cxf从2.15.0升级到2.18.2并遇到异常。

JDK版本为1.8

使用 SOAP 服务的 CXF 端点如下

endpoint id="OTAHotelAvailability_OTA_2012B_EndPoint" uri="cxf:/HotelAvailabilityPort?wsdlURL=${wsdlpath}/test.wsdl&dataFormat=PAYLOAD&properties.schema-validation-enabled=false&cxfEndpointConfigurer=#cXFEndpointConfigurer"

从 CXF 端点消费并执行实际业务的下一条路线。

from uri="ref:OTAHotelAvailability_OTA_2012B_EndPoint" to uri="processor"

这段代码在camel-cxf 2.15.0上运行良好,但当我升级到2.18.2时抛出以下异常。

异常跟踪。

org.apache.camel.TypeConversionException: Error during type conversion from type: java.lang.String to the required type: java.lang.String with value org.apache.camel.component.cxf.CxfPayload@6ad3b0a2 due net.sf.saxon.trans.XPathException: A source of type javax.xml.transform.stax.StAXSource is not supported in this environ
        at org.apache.camel.impl.converter.BaseTypeConverterRegistry.createTypeConversionException(BaseTypeConverterRegistry.java:629)
        at org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:150)
        at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:78)
        at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:53)
        at org.apache.camel.builder.ExpressionBuilder$45.evaluate(ExpressionBuilder.java:1105)
        at org.apache.camel.support.ExpressionAdapter.evaluate(ExpressionAdapter.java:36)
        at org.apache.camel.builder.SimpleBuilder.evaluate(SimpleBuilder.java:92)
        at org.apache.camel.processor.TransformProcessor.process(TransformProcessor.java:50)
        at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
        at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)
        at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:120)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)
        at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
        at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)
        at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)
        at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
        at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)
        at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:120)
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)
        at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)
        at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:97)
        at org.apache.camel.component.cxf.CxfConsumer$CxfConsumerInvoker.syncInvoke(CxfConsumer.java:209)
        at org.apache.camel.component.cxf.CxfConsumer$CxfConsumerInvoker.invoke(CxfConsumer.java:136)
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor$2.run(ServiceInvokerInterceptor.java:126)
        at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:131)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
        at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
        at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:254)
        at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
        at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
        at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
        at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:180)
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:298)
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:217)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:273)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)

最佳答案

在类似的情况下,我使用了下面的代码,它解决了我的问题:-

.to(cxf:bean:cxfEndpointBeanId).streamCaching()

关于java - Camel-cxf 2.18.2 抛出 TypeConversionException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42717534/

相关文章:

java - Android 可以每月显示一次对话框吗?

java - 管理 Graphics2D 设置的正确方法是什么?

java - 使用 Camel 发送带有自定义 MIME 消息的邮件

apache-camel - Camel SFTP 文件处理问题

java - Camel : how to skip folders during initial upload?

java - 项目构建错误: Non-resolvable parent POM for org. jboss.quickstarts.fuse :cxf-soap:6. 2.1.redhat-084

java - 在 2.23.0 版本中,如果没有 CamelContext,则无法创建 Camel DefaultMessage

java - import urllib.parse 为 jython 2.7.0 返回 "ImportError:No module named parse"

java - 从我们的 Java 程序执行 Java 程序