Hi,
ok, I think I understood the xslt thing. But I'm still not completely sure what to implement with camel. The services I want to invoke are soap-services, so the http endpoint doesn't work, do it? After reading a lot of documentation I think I have to use the cxf endpoint but I still have some understanding problems. I don't want to generate any code, but all tutorials handle this point. Isn't it possible to just invoke a soap service, transform the message and call another service without any generated java classes?

Maybe someone could point me in the right direction for that.

Another thing is:
Is it possible to externalize the service-binding so that I don't need to rebuild the modules when the service-adresses change?

Thanks for any advise,
Marco

Am 08.04.2011 16:45, schrieb Matt Pavlovich:
Marco-

Check out XSLT.  You can extract data from that XML document and output it it any variety 
of formats, not just XML.  You'll want to capture the exact XML from "service 
one", so you can test your XSLT's.  A handy tool to do that is TCP Mon, available as 
an Eclipse plugin, or a stand alone tool.

XSLT:
http://w3schools.com/xsl/default.asp

TCPMon:
http://ws.apache.org/commons/tcpmon/download.cgi

Matt Pavlovich


On Apr 8, 2011, at 9:33 AM, Marco Westermann wrote:

Hi, thank you for your response,

in fact there is some transformation needed for the response payload of service 
call one.

The service one wrappes an activeX-Object and returns a string as part of a 
complex type:

<element name="getChangedArticlesResponse">
<complexType>
<sequence>
<element name="getChangedArticlesReturn"
            type="xsd:string" />
</sequence>
</complexType>
</element>

the string itself contains exactly the message which has to be routed to 
service 2. Any idea how to make this work?

Thank you!

Marco


Am 07.04.2011 17:39, schrieb Matt Pavlovich:
Hi Marco-

You could implement a very simple solution using Camel running in ServiceMix to 
do that.  Look into the timer, or quartz Camel components to start.

It would look something like:

<route>
    <from uri="timer..  configure to kick off every 5 mintues" />
    <to uri="http://webservice1:8080/call />
    <to uri="http://webservice2:8080/call2 />
</route>

The response from the webservice1 would be directed as the input to 
webservice2.  As long as the payload is exactly the same, you don't need to do 
anything.  If there are slight changes to the xml, you can insert a XSLT to 
take the response from webservice1 and send it to webservice2 as the input.

Time based invocation:
http://camel.apache.org/timer.html
http://camel.apache.org/quartz.html

Simple web service calls:
http://camel.apache.org/http.html

Advanced web service:
http://camel.apache.org/cxf.html

XSLT:
http://camel.apache.org/xslt.html

Matt Pavlovich

On Apr 7, 2011, at 7:59 AM, Marco Westermann wrote:

Hi,

I try to implement the following process:

every 5 minutes I want to call a web Service take the answer and call another 
web service with the return value from the first call.
using bpel would be nice to do the job (ode?). Is there a tutorial which does 
similar tasks? I think I have still an understanding problem on how to use 
serviceMix.

Thank you for all advice you can give.

Marco
__________ Hinweis von ESET NOD32 Antivirus, Signaturdatenbank-Version 6025 
(20110408) __________

E-Mail wurde geprüft mit ESET NOD32 Antivirus.

http://www.eset.com





__________ Hinweis von ESET NOD32 Antivirus, Signaturdatenbank-Version 6026 
(20110408) __________

E-Mail wurde geprüft mit ESET NOD32 Antivirus.

http://www.eset.com





Reply via email to