As I wrote in the first message of this post, the http receives the message I
send by "validate" using
this.wsExchange.setMessage(exchange.getMessage("out"), "out");
channel.send(this.wsExchange);
where wsExchange is a local variable set when "validate" receives the "in"
message, but "validate" raise the exception reported in the first message of
this post.
Giuseppe
Gert Vanthienen wrote:
>
> Guiseppe,
>
> If you use an HTTP endpoint to send the message to your Validate
> endpoint (which is able to receive and send InOut), there is nothing
> else you need to do. If your validate sets the 'out' NormalizedMessage
> it receives from the routing-slip as the 'out' NormalizedMessage to the
> exchange it received in the first place, everything should work fine and
> your HTTP client should get the response.
>
> Gert
>
> beppe82 wrote:
>> I use InOnly between FTP and TOXML, InOut among the others...
>> StaticRoutingSlip accepts just InOut exchanges, and after the last
>> component
>> in the routing table has elaborated the message, an "out" message should
>> be
>> sent to VALIDATE, correct?
>> VALIDATE could receive messages also from an http component (soap
>> endpoint),
>> not only from TOXML: in the case the message was received from
>> http-component, I would like to send the out message to it... is it
>> clear?
>> Thank you for your help, Giuseppe
>>
>>
>> Gert Vanthienen wrote:
>>
>>> Guiseppe,
>>>
>>> I'm kind of confused by the "...be sent back to the Web Service...".
>>> The message exchange seems to originate from an FTP poller, if you
>>> schema at the top of your message is correct. This would explain why
>>> you get the exception below, because the FTP poller sends InOnly message
>>> exchanges. You cannot add an 'out' NormalizedMessage to an InOnly
>>> MessageExchange.
>>>
>>> If the first component was e.g. an HTTP Provider endpoint and every
>>> other component in the process is working with InOut MessageExchanges,
>>> things would work out fine, I suppose.
>>>
>>> Gert
>>>
>>> Beppe wrote
>>>
>>>> Hi, I have the following scenario:
>>>>
>>>> ftp-poller --> to-xml-se --> validate-se --> static-routing-slip
>>>>
>>>> validate-se can be used by a Web Service too.
>>>>
>>>> Static routing slip is configured to forward each message it receives
>>>> to
>>>> sp1, sp2, sp3, ..., sp7.
>>>> In theory, when sp7 fills and sends the out message, it should be sent
>>>> to
>>>> validate-se, correct?
>>>> Now, I would like this message (the out message that arrives to
>>>> validate-se)
>>>> be sent back to the Web Service.
>>>> First, how can I know the "sender" service which sent the IN message to
>>>> validate-se (to-xml-se or WS)?
>>>> Second, for now I remembered the exchange with the WS by setting a
>>>> local
>>>> variable in validate-se.MyEndpoint (for now I distinguish between
>>>> to-xml-se
>>>> and WS looking at the mep used :( ); when validate-se receives the OUT
>>>> message by sp7, it does the following:
>>>>
>>>> this.wsExchange.setMessage(exchange.getMessage("out"), "out");
>>>> channel.send(this.wsExchange);
>>>>
>>>> This method works, in the sense that the WS receives the response
>>>> message,
>>>> but validate-se raise the following exception:
>>>>
>>>> 15:19:27,484 | Error processing exchange InOut[
>>>> id: ID:giuseppe-laptop-4111-1184246290890-14:77
>>>> status: Active
>>>> role: consumer
>>>> service: {http://giuseppe.org}routingSlip
>>>> endpoint: endpoint
>>>> in: <?xml version="1.0" encoding="UTF-8"?>
>>>> out: <?xml version="1.0"
>>>> encoding="UTF-8"?><status>completed!</status>
>>>> ]
>>>> javax.jbi.messaging.MessagingException: Out not supported
>>>> at
>>>> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:317)
>>>> at cedac.validate.MyEndpoint.process(MyEndpoint.java:211)
>>>> at
>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:489)
>>>> at
>>>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:463)
>>>> at
>>>> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>>>> at
>>>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:593)
>>>> at
>>>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:174)
>>>> at
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:176)
>>>> at
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>>>> at
>>>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
>>>> at
>>>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
>>>> at java.lang.Thread.run(Thread.java:595)
>>>>
>>>> I know this post is a bit confused, but I hope you can help me!
>>>> Thanks, Giuseppe
>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/forwarding-out-messages-tf4068171s12049.html#a11563280
Sent from the ServiceMix - User mailing list archive at Nabble.com.