Hi,JB...
Thanks for you quick reply.. :)
I have understood the listener part and also sending message through quartz.
But, still i am looking for following -
1. How can i create a SenderBean (just like ListenerBean) that will be used
to send message?
2. How to configure it in xbean.xml that will send message to ListenerBean?
3. When i deploy SenderBean project over servicemix, when will it send
message? or i have to explicitly trigger it to send message?
Please reply..
Thanks,
Sanket
Jean-Baptiste Onofré wrote:
>
> Hi Sanky,
>
> If you need to create the POJO, you can use the servicemix-bean
> component. If you have existing POJO, you can expose it using the
> servicemix-cxf-se component.
>
> For example, you can create a service that use a POJO method like this :
>
> import org.apache.servicemix.jbi.listener.MessageExchangeListener;
> import org.apache.servicemix.jbi.util.MessageUtil;
> import org.apache.servicemix.jbi.jaxp.SourceTransformer;
>
> import javax.annotation.Resource;
> import javax.jbi.messaging.DeliveryChannel;
> import javax.jbi.messaging.ExchangeStatus;
> import javax.jbi.messaging.MessageExchange;
> import javax.jbi.messaging.MessagingException;
> import javax.jbi.messaging.NormalizedMessage;
> import javax.xml.transform.Source;
>
> public class ListenerBean implements MessageExchangeListener {
>
> @Resource
> private DeliveryChannel channel;
>
> public void onMessageExchange(MessageExchange exchange) throws
> MessagingException {
> if (exchange.getStatus() == ExchangeStatus.ACTIVE) {
> NormalizedMessage message =
> exchange.getMessage("in");
> Source content = message.getContent();
> //process content according to your logic
> //e.g. to access the message body as a String use
> String body = (new
> SourceTransformer()).toString(content);
> body = MyPOJO.transform(body);
> message.setContent(new StringSource(body));
> exchange.setMessage(message, "out");
> channel.send(exchange);
> }
> }
>
> }
>
> This POJO is the listener one: it receives a message, extracts the
> content and send out (if the MEP InOut is used).
>
> You can deploy it with the following xbean.xml:
> <bean:endpoint service="MyService" endpoint="listener" bean="#myBean"/>
> <bean id="myBean" class="com.my.package.Bean"/>
>
> For the poller, you can use servicemix-quartz component to call a bean
> that trigger the message sending. You can define your own
> servicemix-quartz marshaler to define the message content. After you
> deploy it using a xbean.xml like this:
>
> <quartz:endpoint service="MyService endpoint="provider"
> targetService="MyService" endpoint="listener">
> <quartz:jobDetail>
> <quartz:jobDetail>
> <quartz:jobDataAsMap>
> <quartz:property key="xml"><![CDATA[
> <hello>world</hello>
> ]]></quartz:property>
> </quartz:jobDataAsMap>
> </quartz:jobDetail>
> </quartz:jobDetail>
> <quartz:triggers>
> <quartz:simple repeatCount="0" repeatInterval="1000" />
> <quartz:cron cronExpression="0 * 1 * * ?" />
> </quartz:triggers>
> <quartz:marshaler>
> <bean class="org.apache.servicemix.quartz.CustomMarshaler" />
> </quartz:marshaler>
> </quartz:endpoint>
>
> Regards
> JB
>
>
> sanky wrote:
>> Hi,All...
>>
>> I want to exchange message from one POJO(sender) to another(receiver).
>> I am looking for-
>> 1. how to configure POJO's for this, may be in the form of xbean.xml..
>> Any example on this will be useful..
>> I have also gone through the link--
>> http://servicemix.apache.org/pojo-support.html
>> But dont understand everything. Please help..
>>
>> 2. Also help me to understand how sender will be triggered to send
>> message
>> once sender and receiver service assemblies (SA) are deployed
>>
>>
>> Thanks,
>> Sanket
>
>
--
View this message in context:
http://www.nabble.com/Message-Exchange-between-two-POJO%27s-tp23560535p23570615.html
Sent from the ServiceMix - Dev mailing list archive at Nabble.com.