You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by alexcpn <al...@gmail.com> on 2010/09/16 14:03:19 UTC
Sending from a servicemix-bean to a file sender endpoint
Hi,
My use case is like this; From a file poller I get the message to my
servicemix-bean; I do something with the message; After a count is reached I
want to send a consolidated message to a file sender. I tried something like
this and evidently the endpoint is not getting injected;
----------------------------------
xbean is like this
<file:poller service="test:inmc_filepoller"
endpoint="endpoint"
targetService="test:inmc_aggregator_pipeline"
file="d:\temp\_del\pollertest">
</file:poller>
-----------------------------------
public class MyBean implements MessageExchangeListener {
@Resource
private DeliveryChannel channel;
@ExchangeTarget(uri="endpoint:http://servicemix.apache.org/test/file_sender_getbulk/endpoint")
private Destination target;
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
try {
String body = (new SourceTransformer()).toString(content);
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
MessageExchange exchange2 =target.createInOnlyExchange();
message.setContent(content);
exchange2.setMessage(message, "in");
channel.send(exchange2);
}
}
}
-----------------
ERROR - BeanComponent - Error processing exchange InOnly[
id: ID:169.254.241.150-12b1a502016-14:150
status: Active
role: provider
service: {http://servicemix.apache.org/test}aggregatorbean
endpoint: bean
in: Unable to display: java.io.IOException: Stream closed
]
java.lang.NullPointerException
at
com.nsn.isuite.aggregator.MyBean.onMessageExchange(MyBean.java:40)
at
org.apache.servicemix.bean.BeanEndpoint.onProviderExchange(BeanEndpoint.java:230)
at
org.apache.servicemix.bean.BeanEndpoint.process(BeanEndpoint.java:217)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
at
org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:632)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:185)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
WARN - FileComponent - Message in file
d:\temp\_del\pollertest\test.txt could not be handled successfully: null
--
View this message in context: http://servicemix.396122.n5.nabble.com/Sending-from-a-servicemix-bean-to-a-file-sender-endpoint-tp2842166p2842166.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: Sending from a servicemix-bean to a file sender endpoint
Posted by Kévin Sailly <ke...@gmail.com>.
Hello,
It is looks like you did not create your target endpoint anywhere, then
complaining on NPE.
Where did you define the
endpoint:http://servicemix.apache.org/test/file_sender_getbulk/endpoint?
Regards,
Kévin
--
View this message in context: http://servicemix.396122.n5.nabble.com/Sending-from-a-servicemix-bean-to-a-file-sender-endpoint-tp2842166p2851597.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: Sending from a servicemix-bean to a file sender endpoint
Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Try to use sendSync() on the delivery channel in place of send().
Check the MEP of your message too.
Regards
JB
On 09/16/2010 02:03 PM, alexcpn wrote:
>
> Hi,
> My use case is like this; From a file poller I get the message to my
> servicemix-bean; I do something with the message; After a count is reached I
> want to send a consolidated message to a file sender. I tried something like
> this and evidently the endpoint is not getting injected;
>
> ----------------------------------
> xbean is like this
>
> <file:poller service="test:inmc_filepoller"
> endpoint="endpoint"
> targetService="test:inmc_aggregator_pipeline"
> file="d:\temp\_del\pollertest">
>
> </file:poller>
>
> -----------------------------------
> public class MyBean implements MessageExchangeListener {
>
> @Resource
> private DeliveryChannel channel;
>
>
> @ExchangeTarget(uri="endpoint:http://servicemix.apache.org/test/file_sender_getbulk/endpoint")
> private Destination target;
>
>
> 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
> try {
> String body = (new SourceTransformer()).toString(content);
> } catch (TransformerException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
>
> MessageExchange exchange2 =target.createInOnlyExchange();
>
> message.setContent(content);
> exchange2.setMessage(message, "in");
> channel.send(exchange2);
>
> }
> }
>
> }
>
> -----------------
>
> ERROR - BeanComponent - Error processing exchange InOnly[
> id: ID:169.254.241.150-12b1a502016-14:150
> status: Active
> role: provider
> service: {http://servicemix.apache.org/test}aggregatorbean
> endpoint: bean
> in: Unable to display: java.io.IOException: Stream closed
> ]
> java.lang.NullPointerException
> at
> com.nsn.isuite.aggregator.MyBean.onMessageExchange(MyBean.java:40)
> at
> org.apache.servicemix.bean.BeanEndpoint.onProviderExchange(BeanEndpoint.java:230)
> at
> org.apache.servicemix.bean.BeanEndpoint.process(BeanEndpoint.java:217)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:627)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:581)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:535)
> at
> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:632)
> at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:185)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
> at java.lang.Thread.run(Thread.java:619)
> WARN - FileComponent - Message in file
> d:\temp\_del\pollertest\test.txt could not be handled successfully: null
>
--
Jean-Baptiste Onofré
---------------------------------
HomePage
http://www.nanthrax.net
---------------------------------
Contacts
jbonofre@apache.org
jb@nanthrax.net
---------------------------------
OpenSource
BuildProcess/AutoDeploy
http://buildprocess.sourceforge.net
Apache ServiceMix
http://servicemix.apache.org
-----------------------------------
PGP : 17D4F086