Hi, 

#1: TCP server expects plain XML so I removed transferExchange=true option.
Thanks for that.


#2: My In message from 2nd processor looks like a sum of In message from 1st
processor and Out message (which is a processed In message) from 1st
processor. So it looks like in below example:

Processor I - In message: <AAA><BBB/></AAA>   
Processor I - Out message (after processing In message):
<AAA><BBB><CCC/></BBB></AAA>
Processor II - In message: <AAA><BBB/></AAA><AAA><BBB><CCC/></BBB></AAA>
Processor II - Out message: null

Maybe I'm wrong but it doesn't seem that Out from TCP is In for 2nd
processor...



I turned on tracing but it doesn't say anything more than
java.lang.NullPointerException :(

Any suggestions on that, please?


Best regards,
Suraf




Claus Ibsen-2 wrote:
> 
> Hi
> 
> #1
> What format does the TCP server expect?
> If it should be the exchange body as plain XML then you should not use
> transferExchange=true.
> 
> 
> #2
> In the last processor could you try getting the IN body instead.
> The processor is part of a new route where the OUT from the TCP server
> is used as IN in the next node.
> 
> BTW: You can use the tracer to see the messages being passed in the log
> http://activemq.apache.org/camel/tracer.html
> 
> 
> /Claus Ibsen
> Apache Camel Committer
> Blog: http://davsclaus.blogspot.com/
> 
> 
> 
> On Tue, Dec 2, 2008 at 5:35 PM, Suraf <[EMAIL PROTECTED]> wrote:
>>
>> All,
>>
>> I'm trying to execute a few steps using Camel-Mina TCP component in
>> servicemix:
>> - get InOut message from ServiceMix component
>> - process message (processed message is still an XML)
>> - send it to TCP server (via Mina)
>> - get response from TCP server (response is an XML)
>> - process response and send it back to ServiceMix component
>>
>> Here is my code:
>>
>> public class TcpRouteBuilder extends RouteBuilder {
>>
>>    public void configure() throws Exception {
>>
>>        String fullAddress = new StringBuilder()
>>                .append("mina:tcp://")
>>                .append(serverAddress)
>>                .append(":")
>>                .append(serverPort)
>>
>> .append("?textline=true&sync=true&transferExchange=true").toString();
>>
>>
>> from("jbi:endpoint:http://namespace/tcpService/tcpEndpoint";).process(
>>                new Processor() {
>>                    public void process(Exchange exchange) throws
>> Exception
>> {
>>                        String xmlString = convertToString((DOMSource)
>> exchange.getIn().getBody());
>>                        xmlString = prepareMessage(xmlString);
>>                        exchange.getIn().setBody(xmlString);
>>                    }
>>                }
>>        ).to(fullAddress).process(
>>                new Processor() {
>>                    public void process(Exchange exchange) throws
>> Exception
>> {
>>                        // here some additional processing of response is
>> required but body seems to be null
>>                        Object body = exchange.getOut().getBody();
>>                        body = processBody( body );
>>                        exchange.getOut().setBody(body);
>>                    }
>>                }
>>        );
>>    }
>> }
>>
>> In the second processor I get null from exchange.getOut().getBody().
>>
>> What am I doing wrong? How should I get valid XML response from TCP and
>> process it somehow?
>> Could you please advice something?
>>
>> I'm using FuseESB 3.3.1.11 with Camel 1.5.0 (camel-core-1.5.0.0-fuse.jar
>> and
>> camel-mina-1.5.0.jar) and Mina 1.1.7 (mina-core-1.1.7.jar).
>>
>> Thanks in advance for your help.
>>
>> --
>> View this message in context:
>> http://www.nabble.com/camel-mina-in-servicemix---how-to-process-TCP-response--tp20794416s22882p20794416.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: 
http://www.nabble.com/camel-mina-in-servicemix---how-to-process-TCP-response--tp20794416s22882p20808827.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to