Hi,

I'm new to Apache Camel and Mina. I'm writing a simple tcp sever and i'm
facing a problem : i don't know how to close a Mina Endpoint Session. I use
Camel 1.5.0 (available at maven official repository)

The workflow is : the client send a "Logout" command, then the server says
"Bye" and the _server_ close the connection. It's like and FTP server does.

my route is this way configured :
<route>
        <from ref="myMinaEndpoint" />
        <to uri="myProcessor" />
</route>

The minaEndPoint URL is
mina:tcp://localhost:1802?textline=false&sync=true&minaLogger=false&codec=myCodec

In my processor, i do in the process(Exchange exchange) method :
MinaExchange minaExchange = (MinaExchange) exchange;
// ...
minaExchange.getOut().setBody(myResponse);

and the classic request-response works well

but if i add at the end if the case of a logout request
 minaExchange.getSession().close();
the tcp session is closed, but the response ("Bye") is not sent. I got an
exception on server side :

230583 [AnonymousIoService-11] WARN
org.apache.camel.component.mina.MinaConsumer$ReceiveHandler - [/
192.168.244.87:54868] Unexpected exception from exceptionCaught handler.
org.apache.camel.CamelException: org.apache.camel.CamelExchangeException:
Could not write body on the exchange: Exchange[Message:
com.dclgroup.eurodns.epp.server.eppdatag...@109dc35]
    at
org.apache.camel.component.mina.MinaConsumer$ReceiveHandler.exceptionCaught(MinaConsumer.java:88)
    at
org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.exceptionCaught(AbstractIoFilterChain.java:564)
    at
org.apache.mina.common.support.AbstractIoFilterChain.callNextExceptionCaught(AbstractIoFilterChain.java:345)
    at
org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:53)
    at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.exceptionCaught(AbstractIoFilterChain.java:643)
    at
org.apache.mina.common.IoFilterAdapter.exceptionCaught(IoFilterAdapter.java:75)
    at
org.apache.mina.common.support.AbstractIoFilterChain.callNextExceptionCaught(AbstractIoFilterChain.java:345)
    at
org.apache.mina.common.support.AbstractIoFilterChain.access$1000(AbstractIoFilterChain.java:53)
    at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.exceptionCaught(AbstractIoFilterChain.java:643)
    at
org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:224)
    at
org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
    at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.camel.CamelExchangeException: Could not write body on
the exchange: Exchange[Message:
com.dclgroup.eurodns.epp.server.eppdatag...@109dc35]
    at
org.apache.camel.component.mina.MinaHelper.writeBody(MinaHelper.java:47)
    at
org.apache.camel.component.mina.MinaConsumer$ReceiveHandler.messageReceived(MinaConsumer.java:131)
    at
org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
    at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at
org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at
org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
    at
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
    at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
    at
org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
    at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
    at
org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
    ... 5 more

Any help would be much appreciated.

Best regards,
Nicolas.

Reply via email to