Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
骆驼cxf有效负载模式拦截器抛出org.apache.camel.component.cxf.CxfPayload无法转换为javax.xml.transform_Java_Web Services_Cxf_Apache Camel - Fatal编程技术网

骆驼cxf有效负载模式拦截器抛出org.apache.camel.component.cxf.CxfPayload无法转换为javax.xml.transform

骆驼cxf有效负载模式拦截器抛出org.apache.camel.component.cxf.CxfPayload无法转换为javax.xml.transform,java,web-services,cxf,apache-camel,Java,Web Services,Cxf,Apache Camel,我正在使用同事编写的CXF拦截器将第三方Web服务所需的soap头添加到由xsl文件创建的apache camel消息的soap信封中。拦截器在我同事的路线上正常工作,但在我的路线上却失败了。我直接从他的路线复制了我的端点,所以我认为这不是问题所在。我问我的同事,他从未见过这样的事情 我的路线是: <to uri="bean:applicationName?method=setBodyToBlankXML" /> <to uri="xslt:xsl/applicationNam

我正在使用同事编写的CXF拦截器将第三方Web服务所需的soap头添加到由xsl文件创建的apache camel消息的soap信封中。拦截器在我同事的路线上正常工作,但在我的路线上却失败了。我直接从他的路线复制了我的端点,所以我认为这不是问题所在。我问我的同事,他从未见过这样的事情

我的路线是:

<to uri="bean:applicationName?method=setBodyToBlankXML" />
<to uri="xslt:xsl/applicationName-thirdPartyWebserviceOperationName.xsl" />
<setHeader headerName="operationName">
<constant>OperationName</constant>
</setHeader>
<setHeader headerName="operationNamespace">
<constant>thirdPartyNamespace</constant>
</setHeader>
<to uri="cxf:bean:thirdPartyWebserviceBean" />
在堆栈跟踪中,实际异常似乎是在CXF本身中引发的。似乎在发生异常时,CXF正在执行它所需的任何内部处理以继续发送请求


在互联网上似乎没有那么多关于这个问题的信息,我唯一得到的信息是邮件列表存档中的一条未回复的旧邮件。我是否做错了什么,这可能是CXF中一个模糊的错误,或者是我完全遗漏了什么

我的团队遇到了类似的问题,我也看到了这一点

我们的解决方案是对生产者和消费者使用相同的数据格式

最初,我们在from(“cxf:bean:”)上使用dataFormat.PAYLOAD,在to(“cxf:bean:”)上使用dataFormat.RAW。在两个端点使用dataFormat.PAYLOAD解决了该问题

<to uri="bean:applicationName?method=setBodyToBlankXML" />
                        <to uri="xslt:xsl/applicationName-thirdPartyWebserviceOperationName.xsl" />
                        <log message="Display Request ${body}" loggingLevel="INFO" />
                        <to uri="cxf:bean:thirdPartyWebserviceBean" />
java.lang.ClassCastException: org.apache.camel.component.cxf.CxfPayload cannot be cast to javax.xml.transform.Source
    at org.apache.cxf.databinding.source.XMLStreamDataWriter.write(XMLStreamDataWriter.java:79) ~[cxf-core-3.0.2.jar:3.0.2]
    at org.apache.cxf.databinding.source.XMLStreamDataWriter.write(XMLStreamDataWriter.java:54) ~[cxf-core-3.0.2.jar:3.0.2]
    at org.apache.camel.component.cxf.HybridSourceDataBinding$1.write(HybridSourceDataBinding.java:100) ~[camel-cxf-2.14.1.jar:2.14.1]
    at org.apache.camel.component.cxf.HybridSourceDataBinding$1.write(HybridSourceDataBinding.java:81) ~[camel-cxf-2.14.1.jar:2.14.1]
    at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleHeaderPart(SoapOutInterceptor.java:256) ~[cxf-rt-bindings-soap-3.0.2.jar:3.0.2]
    at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.writeSoapEnvelopeStart(SoapOutInterceptor.java:177) ~[cxf-rt-bindings-soap-3.0.2.jar:3.0.2]
    at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleMessage(SoapOutInterceptor.java:87) ~[cxf-rt-bindings-soap-3.0.2.jar:3.0.2]
    at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleMessage(SoapOutInterceptor.java:67) ~[cxf-rt-bindings-soap-3.0.2.jar:3.0.2]
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) ~[cxf-core-3.0.2.jar:3.0.2]
    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514) [cxf-core-3.0.2.jar:3.0.2]
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:416) [cxf-core-3.0.2.jar:3.0.2]
    at org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:112) [camel-cxf-2.14.1.jar:2.14.1]
    at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:120) [camel-core-2.14.1.jar:2.14.1]
    at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72) [camel-core-2.14.1.jar:2.14.1]
    at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:416) [camel-core-2.14.1.jar:2.14.1]
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191) [camel-core-2.14.1.jar:2.14.1]
    at org.apache.camel.processor.Pipeline.process(Pipeline.java:118) [camel-core-2.14.1.jar:2.14.1]
    at org.apache.camel.processor.Pipeline.access$100(Pipeline.java:43) [camel-core-2.14.1.jar:2.14.1]
    at org.apache.camel.processor.Pipeline$1.done(Pipeline.java:136) [camel-core-2.14.1.jar:2.14.1]
    at org.apache.camel.processor.CamelInternalProcessor$InternalCallback.done(CamelInternalProcessor.java:251) [camel-core-2.14.1.jar:2.14.1]
    at org.apache.camel.impl.MDCUnitOfWork$MDCCallback.done(MDCUnitOfWork.java:231) [camel-core-2.14.1.jar:2.14.1]
    at org.apache.camel.processor.RedeliveryErrorHandler$1.done(RedeliveryErrorHandler.java:428) [camel-core-2.14.1.jar:2.14.1]
    at org.apache.camel.management.InstrumentationProcessor$1.done(InstrumentationProcessor.java:81) [camel-core-2.14.1.jar:2.14.1]
    at org.apache.camel.processor.SendProcessor$1.done(SendProcessor.java:131) [camel-core-2.14.1.jar:2.14.1]
    at org.apache.camel.component.cxf.CxfClientCallback.handleResponse(CxfClientCallback.java:61) [camel-cxf-2.14.1.jar:2.14.1]
    at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:819) [cxf-core-3.0.2.jar:3.0.2]
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1638) [cxf-rt-transports-http-3.0.2.jar:3.0.2]
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream$1.run(HTTPConduit.java:1145) [cxf-rt-transports-http-3.0.2.jar:3.0.2]
    at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$3.run(AutomaticWorkQueueImpl.java:428) [cxf-core-3.0.2.jar:3.0.2]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_25]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_25]
    at org.apache.cxf.workqueue.AutomaticWorkQueueImpl$AWQThreadFactory$1.run(AutomaticWorkQueueImpl.java:353) [cxf-core-3.0.2.jar:3.0.2]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25]