JBoss Messaging HTTP Transport Example

$Revision: 2751 $

Overview

This example shows how to configure a ConnectionFactory to send messages using the HTTP protocol. The example will use such a ConnectionFactory to create two JMS connections: the first one to send a message to the queue and the second one to read the message from the queue. In both cases, the message will be sent over an HTTP connection. The example is considered successful if the client receives without any error the message that was previously sent to the queue.

This example needs to have access to a running JBoss Messaging instance. The JBoss Messaging instance must be installed and started according to the "Installation" paragraph from the release documentation. However, the example will automatically deploy its own queue, unless a queue with the same name is already deployed.


This example also needs to have access to jboss-messaging-client.jar archive that comes with the release bundle. If you run this example from an unzipped installation bundle, the example run script is correctly configured to find the client jar. Otherwise, you must modify example's build.xml accordingly.


Running the example

1. Set up the JBOSS_HOME environment variable to point to the JBoss instance you deployed JBoss Messaging into. For example, if you deployed JBoss Messaging in C:\jboss-4.2.0.GA\server\messaging\deploy, then your JBOSS_HOME value should be C:\jboss-4.2.0.GA

2. Go to the example's home directory



   cd ...\examples\secure-socket


3. Run the example:



   ant



The output of a successful run should be similar to:

$ ant
Buildfile: build.xml

identify:
     [echo] ############################################################################
     [echo] #                         Running the HTTP example                         #
     [echo] ############################################################################
     [echo] The queue:      testQueue
     [echo] The client jar: ../../../output/lib/jboss-messaging-client.jar

sanity-check:

init:
    [mkdir] Created dir: C:\java\messaging\docs\examples\http\output\classes
    [mkdir] Created dir: C:\java\messaging\docs\examples\common\output\classes

compile:
    [javac] Compiling 5 source files to C:\java\messaging\docs\examples\common\output\classes
    [javac] Compiling 1 source file to C:\java\messaging\docs\examples\http\output\classes

deploy:
     [copy] Copying 1 file to C:\jboss-4.2.0.GA\server\messaging\deploy

sleep:
     [echo] Sleeping for 10 seconds ...

run:
     [java] Queue /queue/testQueue exists
     [java] The message was successfully sent to the testQueue queue
     [java] Received message: Hello!
     [java] The example connected to JBoss Messaging version 1.3.0.GA (1.3)
     [java] 
     [java] #####################
     [java] ###    SUCCESS!   ###
     [java] #####################

undeploy:
   [delete] Deleting: C:\jboss-4.2.0.GA\server\messaging\deploy\messaging-http-service.xml

BUILD SUCCESSFUL
Total time: 14 seconds


Troubleshooting

1. I get "javax.jms.JMSSecurityException: User null is NOT authenticated"

You probably didn't install JBoss Messaging correctly. A fresh JBoss Messaging installation requires changes in the security configuration of a default JBoss instance, specifically a properly configured "messaging" security domain.  Follow the instructions from the "Installation" paragraph of the release documentation.