Hi, I recreated a simple project to reproduce this problem. I attached the project file in zip format. You can extract it and there are three SU and one SA. The SU includes Consumer, service1 and service2.
Consumer is a servicemix-http. It will send the message to service1. service1 is a servicemix-bean. It will send a synchronous to service2 and waiting for reply. service2 is a servicemix-bean. It receives message and send back. I do get an error in the log file. If you deploy this project and you will see the error log. thanks, Zhao Yi Gert Vanthienen wrote: > > L.S., > > Could you post the 'consuming' bean's code and xbean.xml as well? > Could you post the exact messages with the exchange you found in the > log, so we can figure out exactly where things are going wrong? > > Regards, > > Gert Vanthienen > ------------------------ > Open Source SOA: http://fusesource.com > Blog: http://gertvanthienen.blogspot.com/ > > > > 2009/11/17 youhaodeyi <[email protected]>: >> >> Hi, >> >> I can see the log printed by my class. There are 3 times for the same >> exchange, but all of them are ACTIVE, no DONE message found. >> >> Regards, >> >> Zhao Yi >> >> >> Gert Vanthienen wrote: >>> >>> Zhao Yi, >>> >>> This class looks OK to me. Are you seeing the debug messages from >>> this class printed in your log file when you do the send? >>> >>> Could you try enabling DEBUG logging for this InOut exchange? You >>> should see the same exchange pass through the NMR 3 times: once ACTIVE >>> (with only the in message), another ACTIVE (with both the in and out >>> message) and finally DONE. Are there any exceptions or error in the >>> log that can help us figure out what the problem is? >>> >>> Regards, >>> >>> Gert Vanthienen >>> ------------------------ >>> Open Source SOA: http://fusesource.com >>> Blog: http://gertvanthienen.blogspot.com/ >>> >>> >>> >>> 2009/11/17 youhaodeyi <[email protected]>: >>>> >>>> Hi >>>> >>>> Thanks very much for your reply. >>>> >>>> This is the MyReceiver code. >>>> >>>> public class MyReceiver implements MessageExchangeListener { >>>> >>>> �...@resource >>>> private DeliveryChannel channel; >>>> >>>> public void onMessageExchange(MessageExchange me) throws >>>> MessagingException >>>> { >>>> ExchangeStatus status = me.getStatus(); >>>> logger.debug("Receive message " + me + " " + >>>> me.getStatus()); >>>> if (status.equals(ExchangeStatus.DONE) == true >>>> || status.equals(ExchangeStatus.ERROR)) >>>> { >>>> return; >>>> } >>>> if (status == ExchangeStatus.ACTIVE) { >>>> NormalizedMessage message = me.getMessage("in"); >>>> Source content = message.getContent(); >>>> >>>> try { >>>> String body = (new >>>> SourceTransformer()).toString(content); >>>> logger.debug("Get body:" + body); >>>> } catch (TransformerException e) { >>>> e.printStackTrace(); >>>> } >>>> message.setContent(content); >>>> me.setMessage(message, "out"); >>>> channel.send(me); >>>> >>>> } >>>> >>>> >>>> Gert Vanthienen wrote: >>>>> >>>>> Zhao Yi, >>>>> >>>>> The URI you set on the @ExchangeTarget is correct. Could you post the >>>>> code for the MyReceiver bean as well? The Destination interface sends >>>>> an InOut exchange to that bean, so perhaps there's a problem in how >>>>> that bean handle the InOut MEP and is that the cause of blocking the >>>>> call indefinitely. >>>>> >>>>> Regards, >>>>> >>>>> Gert Vanthienen >>>>> ------------------------ >>>>> Open Source SOA: http://fusesource.com >>>>> Blog: http://gertvanthienen.blogspot.com/ >>>>> >>>>> >>>>> >>>>> 2009/11/16 youhaodeyi <[email protected]>: >>>>>> >>>>>> Hi, >>>>>> >>>>>> This is the xbean.xml: >>>>>> >>>>>> <?xml version="1.0" encoding="UTF-8"?> >>>>>> <beans xmlns="http://www.springframework.org/schema/beans" >>>>>> xmlns:service="http://com.test.service" >>>>>> xmlns:sm="http://servicemix.apache.org/config/1.0" >>>>>> xmlns:bean="http://servicemix.apache.org/bean/1.0" >>>>>> xmlns:server="http://servicemix.apache.org/server" >>>>>> xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance" >>>>>> xsi:schemaLocation="http://servicemix.apache.org/bean/1.0 >>>>>> http://servicemix.apache.org/schema/servicemix-bean-3.2.3.xsd >>>>>> http://www.springframework.org/schema/beans >>>>>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> >>>>>> >>>>>> <bean:endpoint service="service:myservice" >>>>>> endpoint="my_service_endpoint" bean="#receiver" /> >>>>>> <bean id="receiver" class="MyService"> >>>>>> </bean> >>>>>> </beans> >>>>>> >>>>>> thanks, >>>>>> >>>>>> Zhao Yi >>>>>> >>>>>> >>>>>> Gert Vanthienen wrote: >>>>>>> >>>>>>> L.S., >>>>>>> >>>>>>> Could you paste us the xbean.xml for the >>>>>>> {http://com.test.service}service endpoint you're trying to target? >>>>>>> Perhaps it doesn't support the MEP or there's an error in the URI or >>>>>>> something? Are there any exception in the log for this message >>>>>>> exchange? >>>>>>> >>>>>>> Regards, >>>>>>> >>>>>>> Gert Vanthienen >>>>>>> ------------------------ >>>>>>> Open Source SOA: http://fusesource.com >>>>>>> Blog: http://gertvanthienen.blogspot.com/ >>>>>>> >>>>>>> >>>>>>> >>>>>>> 2009/11/16 youhaodeyi <[email protected]>: >>>>>>>> >>>>>>>> I have tried this method but the channel.send() will send a new >>>>>>>> message >>>>>>>> to >>>>>>>> the called service not reply. >>>>>>>> >>>>>>>> The future.get() method will block and never get reply message. >>>>>>>> >>>>>>>> >>>>>>>> Maciek Prochniak wrote: >>>>>>>>> >>>>>>>>> it's covered here: >>>>>>>>> http://servicemix.apache.org/servicemix-bean.html >>>>>>>>> please, look at 'Message processing' example >>>>>>>>> >>>>>>>>> br, maciek >>>>>>>>> >>>>>>>>> On Sun, 2009-11-15 at 22:30 -0800, youhaodeyi wrote: >>>>>>>>>> I use servicemix-bean component to deploy my service unit and set >>>>>>>>>> a >>>>>>>>>> field >>>>>>>>>> with @ExchangeTarget annotation. See below: >>>>>>>>>> >>>>>>>>>> @ExchangeTarget(uri = >>>>>>>>>> "service:http://com.test.service/myservice") >>>>>>>>>> public Destination target; >>>>>>>>>> >>>>>>>>>> future = target.send(targetMsg); >>>>>>>>>> NormalizedMessage retMsg = future.get(); >>>>>>>>>> >>>>>>>>>> target.send() is called to send the message to myservice and >>>>>>>>>> waiting >>>>>>>>>> for >>>>>>>>>> reply. How can I reply the message in myservice? myservice >>>>>>>>>> implements >>>>>>>>>> MessageExchangeListener interface. >>>>>>>>>> >>>>>>>>>> thanks, >>>>>>>>>> >>>>>>>>>> Zhao Yi >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> View this message in context: >>>>>>>> http://old.nabble.com/How-can-I-send-synchronous-message-by-Destination--tp26367357p26368288.html >>>>>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com. >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> ----- >>>>>>> --- >>>>>>> Gert Vanthienen >>>>>>> http://gertvanthienen.blogspot.com >>>>>>> >>>>>> >>>>>> -- >>>>>> View this message in context: >>>>>> http://old.nabble.com/How-can-I-send-synchronous-message-by-Destination--tp26367357p26371272.html >>>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com. >>>>>> >>>>>> >>>>> >>>>> >>>>> ----- >>>>> --- >>>>> Gert Vanthienen >>>>> http://gertvanthienen.blogspot.com >>>>> >>>> >>>> -- >>>> View this message in context: >>>> http://old.nabble.com/How-can-I-send-synchronous-message-by-Destination--tp26367357p26382967.html >>>> Sent from the ServiceMix - User mailing list archive at Nabble.com. >>>> >>>> >>> >>> >>> ----- >>> --- >>> Gert Vanthienen >>> http://gertvanthienen.blogspot.com >>> >> >> -- >> View this message in context: >> http://old.nabble.com/How-can-I-send-synchronous-message-by-Destination--tp26367357p26387229.html >> Sent from the ServiceMix - User mailing list archive at Nabble.com. >> >> > > > ----- > --- > Gert Vanthienen > http://gertvanthienen.blogspot.com > http://old.nabble.com/file/p26402009/test.zip test.zip -- View this message in context: http://old.nabble.com/How-can-I-send-synchronous-message-by-Destination--tp26367357p26402009.html Sent from the ServiceMix - User mailing list archive at Nabble.com.
