I've got a Scala app (using HornetQ libs, not stomp) that creates a producer which sends messages to an address "foo.bar".
I've got a stomp client (in python) which subscribes to "foo.bar" address. When I run the client after starting a fresh copy of HQ 2.1.2.Final (cluster config), I get an exception:
HornetQException[errorCode=100 message=Queue device.screen-press does not exist]
I can't get things to work.
So, I tried:
python subscribe "jms.topic.foo.bar"
and the python script no longer exceptions out with the above error 100.
However, when I publish to "foo.bar" from Scala (using the native HornetQ libs and not stomp), I do not see any messages in the Python app which subscribes to "jms.topic.foo.bar".
If I publish from scala to "jms.topic.foo.bar" and consume in python.stomp on "jms.topic.foo.bar", stuff works.
Thing is, I don't want my scala app to publish to "jms.topic" because of routing issues, and because we're not using jms, and I want other consumers to be able to consume from queues bound to that address, too.
This docs say:
"When a Stomp client subscribes (or unsubscribes) for a destination (using a SUBSCRIBE or UNSUBSCRIBE frame), the destination is mapped to a HornetQ queue."
How do I make this all work? I don't even get how a "queue" can exist on the HornetQ server side outside of a consumer setting one up. Am I missing something here? Are the docs mixing up JMS vs Core concerns in Chapter 45?
I think this is basically answered in this thread:
Looks like we'll have to wait for the next release to avoid using the "jms.topic" prefix on addresses intended to be consumed by STOMP clients. Or maybe the REST interface will help that.