I have the following route:

<camel:route>
  <camel:from uri="cxf:bean:webservice1?dataFormat=PAYLOAD"/>
  <camel:to uri="xslt:xslt/xslt1.xsl"/>
  <camel:setHeader 
headerName="operationName"><constant>op1</constant></camel:setHeader>
  <camel:setHeader 
headerName="operationNamespace"><constant>http://myns</constant></camel:setHeader>
  <camel:to uri="xslt:xslt/SOAPWrapper.xsl"/>
  <camel:to uri="cxf:bean:webservice2?dataFormat=MESSAGE"/>
  <camel:to uri="xslt:xslt/xslt2.xsl"/>
  <camel:setHeader 
headerName="operationName"><constant>op2</constant></camel:setHeader>
  <camel:setHeader 
headerName="operationNamespace"><constant>http://myns2</constant></camel:setHeader>
  <camel:to uri="cxf:bean:webservice3?dataFormat=PAYLOAD"/>
</camel:route>

The beans webservice1, 2, and 3 are all defined as cxfEndpoints; I am pretty 
confident they are set up properly.

What emerges out of xslt2.xsl is a simple XML structure that conforms to the 
WSDL/schema for webservice3.

Everything works fine until the end (I can put a log message right before 
webservice3 is invoked, and see my  message structure as it is supposed to be 
after xslt2.  But when the route gets to the very last step, I get this:

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:83)[131:org.apache.cxf.bundle:2.3.4]
        at 
org.apache.cxf.databinding.source.XMLStreamDataWriter.write(XMLStreamDataWriter.java:50)[131:org.apache.cxf.bundle:2.3.4]
        at 
org.apache.cxf.databinding.source.XMLStreamDataWriter.write(XMLStreamDataWriter.java:46)[131:org.apache.cxf.bundle:2.3.4]
        at 
org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:119)[131:org.apache.cxf.bundle:2.3.4]
        at 
org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68)[131:org.apache.cxf.bundle:2.3.4]
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)[131:org.apache.cxf.bundle:2.3.4]
        at 
org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:458)[131:org.apache.cxf.bundle:2.3.4]
        at 
org.apache.camel.component.cxf.CxfProducer.process(CxfProducer.java:94)[133:org.apache.camel.camel-cxf:2.6.0]
...

Any ideas?

Thanks.
--Scott

Reply via email to