Thanks Angel, The proposed solution is to script routing using groovy, as shown in
http://svn.servicemix.codehaus.org/trunk/components/base/src/test/resources/org/servicemix/components/groovy/groovy-chain.xml?rev=693&view=auto Thou i think it is a bit complex way to do simple services chaining. I am having a hard time understanding routing. - Is there any source of information on routing more complete than the wiki and more understandable than the source code ? - What the destinationService attribute means, if not service chaining ? - Is there a simpler way to do service chaining ? Best regards, Julio On 12/8/05, Angel Gomez <[EMAIL PROTECTED]> wrote: > > Well, as JB pointed out in another thread ( userlist, mail archives, > 200510, XSQL Component ), The HTTPComponent is an inout binding, and invokes > and returns the next service in the chain. Since you are wanting to go one > component past this chain, it will never reach it. > > Regards. > > > On 12/7/05, Julio Faerman <[EMAIL PROTECTED]> wrote: > > Hello, > > > > I have a question about ServiceMix Routing. > > > > I am trying to alter the http binding exampe so that instead of doing: > > > > HTTPClient -> httpReceiver -> stockQuote > > > > I want it to do: > > > > HTTPClient -> myServiceUsingXMLText -> httpReceiver -> stockQuote > > > > where "myServiceUsingXMLText" builds the request instead of reading > > the request.xml file. > > > > My attempt was: > > > > Change routing using destinationService attributes on tags. > > > > The problem is: > > > > the client receives the answer from myServiceUsingXMLText (which is the > request) > > instead of getting the stock quote. > > > > > > What was my mistake ? > > > > > > Thanks a lot, > > Julio Faerman > > > > relevant source code ( ... means equals to original http binding example) > > ------------------ > > HTTPClient : > > main(){ > > .. > > InputStream fis = new > ByteArrayInputStream("".getBytes()); //sends empty request > > .. > > } > > : > > > > servicemix.xml > > <?xml version="1.0" encoding="UTF-8"?> > > <beans...> > > <!-- the JBI container --> > > <sm:container spring:id="jbi" ...> > > <sm:activationSpecs> > > <!-- Create a http server binding on port 8912 and have it > > forward to the foo:stockQuote --> > > <sm:activationSpec componentName="httpReceiver" ... > > destinationService="foo:myServiceUsingXMLText"> > > ... > > </sm:activationSpec> > > > > <!-- START SNIPPET: xmlText --> > > <sm:activationSpec > componentName="myServiceUsingXMLText" > > > service="foo:myServiceUsingXMLText" > > > destinationService="foo:stockQuote"> > > <sm:component> > > <bean > class="org.servicemix.components.groovy.GroovyComponent"> > > <property name="scriptText"> > > <value> > > <![CDATA[ > > outMessage.bodyText = """ > > <ns1:getQuote xmlns:ns1="urn:xmethods-delayed-quotes" > > xmlns:xsi=" http://www.w3.org/1999/XMLSchema-instance" > > xmlns:se="http://schemas.xmlsoap.org/soap/envelope/" > > se:encodingStyle=" > http://schemas.xmlsoap.org/soap/encoding/"> > > > > <symbol xsi:type="xsd:string">SUNW</symbol> > > > > </ns1:getQuote> > > """ ]]> > > </value> > > </property> > > </bean> > > </sm:component> > > </sm:activationSpec> > > <!-- END SNIPPET: xmlText --> > > > > <!-- This just invokes another service --> > > <sm:activationSpec componentName="stockQuote" > > service="foo:stockQuote" > > endpoint="stockQuote"> > > <sm:component> > > <bean xmlns=" > http://xbean.org/schemas/spring/1.0" > > > class="org.servicemix.components.saaj.SaajBinding"> > > <property name="soapEndpoint"> > > <bean class="javax.xml.messaging.URLEndpoint"> > > <constructor-arg > value="http://64.124.140.30/soap"/> > > </bean> > > </property> > > </bean> > > </sm:component> > > </sm:activationSpec> > > </sm:activationSpecs> > > </sm:container> > > </beans> > > > >
