Hi Georgios,

I would be interested to know how your route looks like. Camel is actually a router that implements the EIP patterns, so in general it's used to route messages to a server. For implementing your server you might want to take a look at Apache CXF.

That said it is possible to implement your servers directly in Camel by implementing your own Processor or using for instance the camel- bean component. Your route would look something like:
from("mina:tcp://localhost:9000").to("bean:myBean?method=myMethod");

And your bean something like:
public class MyBean  {
    public Object myMethod(Object body) {
        // process your body here, e.g. below
        System.out.println(">>>> " + body);
// ... then produce and return your output (not necessarily a String)
        String answer = "cheese";
        return answer;
    }

There are quite a few examples in the camel-bean component you could look at or the camel examples. If you decide to go with a processor, you'd have to set the output body as Gary suggested.

I hope this helps,
Hadrian


On Feb 12, 2008, at 2:06 PM, Tully, Gary wrote:

Hi Georgios,
I am new to this so apologies if I put you wrong but I think what you
need is to access the exchange Out message in your process method:

 public void process(Exchange e) {
      e.getOut().setBody("some text");
 }

Gary.

-----Original Message-----
From: georgiosgeorgiadis [mailto:[EMAIL PROTECTED]
Sent: 12 February 2008 17:17
To: [email protected]
Subject: Re: Camel TCP receiver endpoint


Hi James, thanks the examples helped a lot. I managed to
create a Mina TCP receiver which routes the call to a
component. Then I created a sender that calls the Mina TCP
component and passes it a serializable object, which managed
to reach my component at the other side of the TCP call. Till
here all worked fine. Yeepee. My problem now is a response
back to the caller. I have set up the sender to use Exchange
of type InOut, but I am sure how to prompt the receiver to
return a value via TCP to sender. The sender of course
times-out after 10 seconds telling me that the
Exchange.getOut() Message is null.

Any suggestions?

The InOut example from the Camel MINA examples works, but it
uses a local variable which is accessed directly by both the
receiver and sender (see protected Exchange receivedExchange;
in MinaTcpWithInOutTest.java). In my case the receiver and
sender in completely separate machines. I can see that my
sender blocks for a timeout period of 10 seconds (can we control this
parameter?) and returns. My receiver is added as a route
listeningto the TCP port but the process method of processor
is void thus there is no way to forward back a response.

Hope all this makes sense.

Thanks again for the huge help.

Georgios



James.Strachan wrote:

On 12/02/2008, georgiosgeorgiadis
<[EMAIL PROTECTED]> wrote:

Thanks again James,

I will give it a try and will keep posted.

One last thing:

Are there any MINA-Camel examples that I can look through
somewhere?

There's a bunch of test cases here...

https://svn.apache.org/repos/asf/activemq/camel/trunk/components/ camel
-mina/

in here...

https://svn.apache.org/repos/asf/activemq/camel/trunk/components/ camel
-mina/src/test/java/org/apache/camel/component/mina/

though these all use the default Codecs and don't configure
their own.

To ease the configuration of your codec, you could create
an extension
of the MinaComponent that customizes the Codec to use and then bind
that new component to some URI scheme of your choosing.

e.g. if you chose 'foo' as your new protocol scheme you could then
route in Camel via...

from("foo://localhost:1234").to("something");

See
http://activemq.apache.org/camel/writing-components.html
--
James
-------
http://macstrac.blogspot.com/

Open Source Integration
http://open.iona.com



--
View this message in context:
http://www.nabble.com/Camel-TCP-receiver-endpoint-tp15430834s2
2882p15436595.html
Sent from the Camel - Users mailing list archive at Nabble.com.


----------------------------
IONA Technologies PLC (registered in Ireland)
Registered Number: 171387
Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland

Reply via email to