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.

Reply via email to