4 Replies Latest reply on Jul 31, 2007 2:21 PM by Ron Sigal

    Listener Deveopment

    Jacques Oosthuizen Newbie

      We want to use the JBOSS esb for a product we are developing. But we need a HTTP REST listener. I am willing to write on where could I find info on this. I looked at the JBOSS code but are unsure of how to do this , Any help would be appreciated.

        • 1. Re: Listener Deveopment
          Tom Fennelly Master

          Hi there.

          We currently have HTTP support via JBoss Remoting. This is how we're supporting SOAP processing at the moment and it should be possible to do the same for rest. I'm fairly sure JBossRemoting supports HTTP GET, but I'm not 100% sure.

          Check out the webservice_producer quickstart. There you'll see the <jbr-listener> and it's counterparts (<jbr-bus> and <jbr-provider>) in action. Let us know how you get on..

          T.

          • 2. Re: Listener Deveopment
            Mark Little Master

             

            "jacqueso.conor.co.za" wrote:
            We want to use the JBOSS esb for a product we are developing. But we need a HTTP REST listener. I am willing to write on where could I find info on this. I looked at the JBOSS code but are unsure of how to do this , Any help would be appreciated.


            Do you need HTTP support or REST/HTTP support? One is an architectural style, the other isn't.

            • 3. Re: Listener Deveopment
              Mathieu Pasture Newbie

              Hi,

              Maybe a suggestion...

              Would the integration with ActiveMQ be a solution? It has a support for a rest API. It could even be use only as a un-aware <jms-listener> / NotifyJMS

              http://activemq.apache.org/rest.html

              • 4. Re: Listener Deveopment
                Ron Sigal Master

                 


                I'm fairly sure JBossRemoting supports HTTP GET, but I'm not 100% sure.


                The method can be set in the metadata map passed to the Remoting invocation. E.g.

                 InvokerLocator locator = new InvokerLocator(getLocatorURIWithPath());
                 System.out.println("Calling remoting server with locator uri of: " + getLocatorURI());
                
                 remotingClient = new Client(locator);
                 remotingClient.connect();
                
                 Map metadata = new HashMap();
                 metadata.put("TYPE", "GET");
                
                 // test with null return expected
                 Object response = remotingClient.invoke((Object)null, metadata);
                


                Remoting then transfers the value of TYPE to the HttpURLConnection:

                 conn.setRequestMethod(type);
                


                Note, by the way, that GET is the default method, if no call is made to setRequestMethod().

                On the server side, Remoting will create an empty request for the invocation handler and will return whatever result returned by the invocation handler.

                A unit test for the GET method may be found in org.jboss.test.remoting.transport.http.method.HTTPInvokerTestClient.