# JBoss Messaging Message Driven Bean Example

$Revision: 82920 $

## Overview

This example deploys a simple Message Driven Bean that processes messages sent to a test queue. Once it receives a message and "processes" it, the MDB sends an acknowledgment message to a temporary destination created by the sender for this purpose. The example is considered successful if the sender receives the acknowledgment message.
This example relies on having access to a running JBoss default instance. However, the example will automatically deploy its own queue, unless a queue with the same name is already deployed.

## 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-5.0.0.GA\server\default\deploy, then your JBOSS_HOME value should be C:\jboss-5.0.0.GA.
2. Go to the example's home directory
cd ...\examples\mdb
3. Run the example:
ant
The output of a successful run should be similar to:

    $ ant
    Buildfile: build.xml

    identify:
         [echo] ###########################################################################
         [echo] #                        Running the MDB 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\mdb\output\classes\META-INF
        [mkdir] Created dir: C:\java\messaging\docs\examples\mdb\output\lib\META-INF
        [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 2 source files to C:\java\messaging\docs\examples\mdb\output\classes

    jar:
         [copy] Copying 2 files to C:\java\messaging\docs\examples\mdb\output\classes\META-INF
          [jar] Building jar: C:\java\messaging\docs\examples\mdb\output\lib\mdb-example.jar

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

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

    run:

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

    undeploy:
       [delete] Deleting: C:\jboss-4.2.0.GA\server\messaging\deploy\mdb-example.jar

    BUILD SUCCESSFUL
    Total time: 10 seconds

## Troublesooting

### 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.