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.
>
>

Reply via email to