Search code examples
thorntail

Mapping a JMS JNDI Entries with Thorntail


I need to map the following JMS configuration I currently run in WildFly with Thorntail:

 <jms-queue name="ExampleQueue" entries="queue/exampleQueue java:/jboss/exported/jms/queue/exampleQueue"/>

I haven't found any example which defines "entries" but I need it for remote JMS Clients. So I have come up with this configuration which, however doesn't work:

thorntail:
  management:
    security-realms:
      ApplicationRealm:
        in-memory-authentication:
          users:
            bob:
              password: Password1!
        in-memory-authorization:
          users:
            jmsuser:
              roles:
              - guest  
  messaging-activemq:
    servers:
      default:
        jms-queues:
          exampleQueue: {}
            entries: queue/exampleQueue java:/jboss/exported/jms/queue/exampleQueue

Which causes:

Caused by: java.lang.RuntimeException: while parsing a block mapping
 in 'reader', line 18, column 11:
              exampleQueue: {}
              ^
expected <block end>, but found BlockMappingStart
 in 'reader', line 19, column 13:
                entries: queue/exampleQueue java ... 

I'm a bit lost. Can you help me to fix it? Thanks!


Solution

  • You've got it almost correct. What you need is (only showing the Messaging part):

    messaging-activemq:
      servers:
        default:
          jms-queues:
            exampleQueue:
              entries:
              - queue/exampleQueue
              - java:/jboss/exported/jms/queue/exampleQueue
    

    (I think queue/exampleQueue should perhaps be jms/queue/exampleQueue, but not totally sure.)

    For a complete working example, you can see e.g. https://github.com/rhoar-qe/thorntail-test-suite/tree/master/javaee/messaging-remote