2 Replies Latest reply on Jun 3, 2011 2:16 PM by pottingshed

    Sending message from server to client

    Maik Schreiber Newbie

      Hi all,


      I'm currently trying to use ErraiBus in a GWT application. What I'm trying to do is to send a message from the server to the client without the client requesting anything. I couldn't find out how to do that, though. In the examples in the user guide it looks like the server always reacts to some client message, which is not what I need.


      On second note, to send an unsolicited message, I think I need a reference to some ErraiBus component. I understand that ErraiBus uses Guice to wire its components, but how to get some object or service that I can use to send my message to the client?


      Any help is greatly appreciated. Perhaps the user guide could be modified to include a similar example.





        • 1. Re: Sending message from server to client
          Heiko Braun Master

          Just send it using a bus reference:



                              .with("text", "Hi There")                  



          You can do that in any business method of your service implementation,

          The bus reference get's injected:



          public HelloWorldService(MessageBus bus) {
                  this.bus = bus;
          • 2. Re: Sending message from server to client
            pottingshed Newbie


            I'm trying to do the same thing - notify client of successful authentication, without an initial client request. However, when I issue the following after authentication, I get the following exception:

            Exception in thread "Dispatch Worker Thread" java.lang.RuntimeException: cannot have a conversation.  the incoming message has not session data associated with it.

            Presumably this is because there is no associated session. This is what I use to make the call:

                    RequestDispatcher erraiDispatcher = GneLifecycleListener.getSpringContext().getBean("erraiRequestDispatcher",






                    .with("gneCommand", GneCommand.SUCCESSFUL_AUTHENTICATION.toString()) // Use string, not enum

                    .with("gneUserVo", gneUserVo)




            Where am I going wrong?



            Errai Newbie.