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
- [servicemix-user] Custom Component Question Julio Faerman
- Re: [servicemix-user] Custom Component Question Guillaume Nodet
- Re: [servicemix-user] Custom Component Question Julio Faerman
