A following question.

If my ConnectionMessagHandler is writing to the IoSession back to the
connection (which it appears to be doing so), then do I need a message
handler for the SimpleRequestPacket. (As I don't intend to do anything with
it)?

How can I prevent the message being handled by the DemuxingIoHandler?


On 1 April 2014 07:41, aidan.diffey <[email protected]> wrote:

> Okay. So is there a built in class to handle the iobuffer class? If there
> is not how do I write the iobuffer (which wraps a byte array) to the
> iostream?
>
>
> Sent from Samsung Mobile
>
>
>
> -------- Original message --------
> From: Emmanuel Lécharny <[email protected]>
> Date: 31/03/2014 22:30 (GMT+00:00)
> To: [email protected]
> Subject: Re: DemuxingIoHandler No Handler found exception
>
>
> Le 3/31/14 5:44 PM, Aidan Diffey a écrit :
> > Hello.
> >
> > Thank you for the very swift reply.
>
> Seems like you haven't associated any handler with SimpleBuffer :
>
>
> this.socketAcceptor.getHandler()).addReceivedMessageHandler(ConnectionPacket.class,
> new ConnectionMessageHandler();
>
>
>
> this.socketAcceptor.getHandler()).addSentMessageHandler(SimpleRequestPacket.class,
> new SimpleRequestHandler();
>
>
>
> >
> > I am doing the following:
> >
> > ServerHandler.java
> > ==============
> > private IoAcceptor socketAcceptor;
> >
> > public void establishService() {
> >   this.socketAcceptor = new NioSocketAcceptor();
> >   this.socketAcceptor.getFilterChain().addLast("ProtocolFilter", new
> > ProtocolCodecFilter(new PacketCodecFactory()));
> >   this.socketAcceptor.setHandler(new DemuxingIoHandler());
> >   this.addInternalMessageHandlers();
> > }
> >
> > private void addInternalMessageHandlers(){
> >   ((DemuxingIoHandler)
> >
> this.socketAcceptor.getHandler()).addReceivedMessageHandler(ConnectionPacket.class,
> > new ConnectionMessageHandler();
> >
> >   ((DemuxingIoHandler)
> >
> this.socketAcceptor.getHandler()).addSentMessageHandler(SimpleRequestPacket.class,
> > new SimpleRequestHandler();
> >
> > }
> >
> > ConnectionMessageHandler.java
> > ====
> > public class ConnectionMessageHandler implements
> > MessageHandler<ConnectionPacket>{
> >     @Override
> >     public void handleMessage(IoSession session, ConnectionPacket
> message)
> > throws Exception{
> >        SimpleRequestPacket request = new SimpleRequestPacket(0xBAAC);
> >        session.write(request);
> >     }
> > }
> >
> > SimpleRequestPacket.java
> > ======
> > public class SimpleRequestPacket{
> >   private int request
> >   public SimpleRequestPacket(int request){
> >     this.request  = request;
> >   }
> >
> > public IoBuffer convertToByteData(){
> >      IoBuffer response = IoBuffer.allocate(4);
> >      response.setInt(this.request);
> >      response.flip();
> >  }
> >
> > }
> >
> >
> >
> > SimpleRequestHandler.java
> > ========
> > public class SimpleRequestHandlerimplements
> > MessageHandler<SimpleRequestPacket>
> >
> >     @Override
> >     public void handleMessage(IoSession session, SimpleRequestPacket
> > message) throws Exception
> >     {
> >          session.write(message.convertToByteData());
> >          session.write(response);
> >     }
> >
> >
> > On 31 March 2014 16:33, Emmanuel Lécharny <[email protected]> wrote:
> >
> >> Le 3/31/14 5:11 PM, Aidan Diffey a écrit :
> >>> Hello.
> >>>
> >>> I am new to using MINA and I have written an application that uses the
> >>> DemuxingIoHandler as the handler for an IOAcceptor. I have registed
> some
> >>> handlers for message recevied and message sent.
> >>>
> >>> One of my registed handlers (implementing MessageHandler) is
> responsible
> >>> for writing data back to the IoSession.  I am doing this using an
> >> IoBuffer
> >>> in the following way:
> >>>
> >>>     @Override
> >>>     public void handleMessage(IoSession session, SimpleRequestPacket
> >>> message) throws Exception
> >>>     {
> >>>         IoBuffer response = IoBuffer.allocate(4);
> >>>         response.setInt(0xBBAC);
> >>>         response.flip();
> >>>
> >>>         session.write(response);
> >>>     }
> >>>
> >>>
> >>> The issue I am having is that I am seeing the following message:
> >>> "org.apache.mina.core.session.UnknownMessageTypeException: No handler
> >> found
> >>> for message type: SimpleBuffer"
> >>>
> >>> Is there another out-of-the-box handler I can use for SimpleBuffers?
> >> You most certainly have an issue in the way you registred your handlers.
> >>
> >> can you provide the code that does that ?
> >>
> >>
> >>
> >> --
> >> Regards,
> >> Cordialement,
> >> Emmanuel Lécharny
> >> www.iktek.com
> >>
> >>
>
>
> --
> Regards,
> Cordialement,
> Emmanuel Lécharny
> www.iktek.com
>
>

Reply via email to