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

Reply via email to