On Mon, 18 Feb 2008 19:10:17 +0100 Marc Giger <[EMAIL PROTECTED]> wrote:
> Hi Willem, > > On Mon, 18 Feb 2008 08:54:02 +0800 > Willem Jiang <[EMAIL PROTECTED]> wrote: > > > Hi Marc, > > > > From your configuration , you just route the request in POJO data > > format mode. > > You can configure the router to use the MESSAGE data format by > > adding the data format parameter in the endpoint URI like this. > > > > <camelContext id="camel" > > xmlns="http://activemq.apache.org/camel/schema/spring"> > > > > <route> > > <from uri="cxf:bean:routerEndpoint?dataFormat=MESSAGE"/> > > <to uri="cxf:bean:serviceEndpoint?dataFormat=MESSAGE"/> > > </route> > > </camelContext> > > Do I need to specify the dataFormat on the incoming and outgoing > endpoint? What happens if the destination (to uri) is a local cxf-bean > with JAX-Binding and the dataFormat on the incoming endpoint (from > uri) dataFormat is still set to MESSAGE? > > > > > Since I just fixed an issue that spring cxf endpoint can't be > > configured properly with MESSAGE or PAYLOAD data format yesterday, > > you may need to try out the latest snap shot of camel. > > Is camel-cxf-1.3-20080216.034155-72.jar the latest snapshot? > If I specify the dataFormat on both endpoints as you sugested, I get > the following error on startup: > > org.apache.cxf.service.factory.ServiceConstructionException: Could not > find portType named > {http://SDService}SDServiceImplPortType > > I don't know where the name "SDServiceImplPortType" comes from... > > If I leave the dataFormat on the serviceEndpoint, I get a NPE. > > Any ideas? > > > > > BTW , in MESSAGE mode , the camel-cxf component just exchange the > > input stream from the transport layer, it will never touch or > > change any contents in the message. I think it will fulfill your > > requirement. > > Sounds good;-) > > Btw: > > Should the following work?: > > <camelContext id="camel" > xmlns="http://activemq.apache.org/camel/schema/spring"> > > <route> > <from uri="cxf:bean:routerEndpoint"/> > <to uri="file://req"/> > </route> > </camelContext> > > Thanks! > > Marc > I got it working so far. If I send a invalid soap-request through the router the service behind the router answers correctly with a 500 SOAP-Fault but the camel router returns the response to the client with a 200 status code. Is there a way to get the correct status-code back to the client? Also I'm still interested in the answers of my questions above. Thanks a lot! Marc > > > > > Cheers, > > > > Willem. > > > > Marc Giger wrote: > > > Hi, > > > > > > I'm new to camel and have a question regarding > > > message mode routing. > > > > > > I have the following setup configured in spring: > > > > > > <cxf:cxfEndpoint id="routerEndpoint" > > > address="/SDService" > > > serviceClass="SDServiceImpl"/> > > > > > > <cxf:cxfEndpoint id="serviceEndpoint" > > > address="http://host1:8080/SDService" > > > wsdlURL="wsdl/SDService.wsdl" > > > endpointName="s:SDPort" > > > serviceName="s:SDService" > > > xmlns:s="http://SDService"/> > > > > > > <camelContext id="camel" > > > xmlns="http://activemq.apache.org/camel/schema/spring"> > > > > > > <route> > > > <from uri="cxf:bean:routerEndpoint"/> > > > <to uri="cxf:bean:serviceEndpoint"/> > > > </route> > > > </camelContext> > > > > > > If I send a request to the routerEndpoint the soap-requests > > > is sent to the serviceEndpoint but: > > > > > > The whole content of the original SOAP-Header is missing on the > > > serviceEndpoint side. > > > > > > My requirement is that incoming message, which is digitally > > > signed, is routet inclusive soap-header and nowhere in the path > > > modified. > > > > > > So is it possible to route a message inclusive soap-header? > > > Also a incoming message must not be read in a DOM and > > > serialized from DOM because otherwise we destroy the signature. > > > > > > Can these requirements be fullfilled with camel? > > > > > > If yes, could you give me an example spring configuration? > > > > > > Thanks a lot > > > > > > Marc > > > > > >
