Works great !

Thanks Guillaume.

On 1/10/06, Guillaume Nodet <[EMAIL PROTECTED] > wrote:
Well, you have just removed the intersting part : your HelloComponent
must return the response back.
This can be done by
   send(ex);

If you do not do that, the client will wait for the response forever ...

Cheers,
Guillaume Nodet

Julio Faerman wrote:

> Hi,
>
> I am doing a simple InOut component to servicemix.
> I want it to receive a string as a property in the inMessage and
> return the same string in the outMessage.
> The problem is that client.sendSync() freezes and client.send()
> returns null, so i cannot get the output message.
> Can anyone help me to understand what is going on ?
>
> Code follows:
>
> ------- Component --------
> public class HelloComponent extends OutBinding{
>     protected void process(MessageExchange ex,
>                            NormalizedMessage inmsg) throws
>             MessagingException {
>         ...
>             NormalizedMessage out = ex.createMessage();
>             out.setProperty ("myString",inmsg.getProperty("myString"));
>             ex.setMessage(out,"out");
>             // canot call done(ex), as it is InOut, right ??
>         ...
> }
>
> ------- Client --------
> ...
>        InOut exchange = client.createInOutExchange();
>
>        NormalizedMessage message = exchange.getInMessage();
>        message.setProperty ("name", "James");
>        message.setContent(new StreamSource(new
> StringReader("<hello>world</hello>")));
>
>  //      client.sendSync(exchange);      /** This blocks forever **/
> //        client.send(exchange);            /** This returns null **/
>
>        NormalizedMessage outmessage = exchange.getOutMessage();
> ...
> ------- Config --------
>   <!-- the JBI container -->
>   <sm:container spring:id="jbi" useMBeanServer="true"
> createMBeanServer="true" dumpStats="true" statsInterval="10">
>     <sm:activationSpecs>
>       <!-- Route the event to a trace component that just outputs the
> event to the console -->
>       <sm:activationSpec componentName="hello" service="my:hello">
>         <sm:component>
>           <bean xmlns="http://xbean.org/schemas/spring/1.0"
> class="jm.jbi.HelloComponent"/>
>         </sm:component>
>       </sm:activationSpec>
>     </sm:activationSpecs>
>   </sm:container>
>   <bean id="client" class="org.servicemix.client.DefaultServiceMixClient ">
>     <constructor-arg ref="jbi"/>
>     <constructor-arg>
>       <sm:activationSpec destinationService="my:hello"/>
>     </constructor-arg>
>   </bean>
>
> What i did wrong ?
>
> Thnx,
> Julio



Reply via email to