Похоже, что вы отправляете сообщение до создания подписки.В темах JMS используется семантика публикации-подписки, где любое опубликованное сообщение отправляется всем подпискам.Если подписок нет, сообщение отбрасывается.
Кроме того, поскольку вы используете receiveNoWait()
, вы значительно снижаете вероятность того, что ваш клиент когда-либо получит сообщение.Чтобы ваш клиент действительно получил сообщение, оно должно быть отправлено между временем, когда вы звоните createSubscriber(topic)
, и временем, когда вы звоните receiveNoWait()
.Поскольку эти 2 вызова происходят очень близко друг к другу, окно времени очень мало.
Если вы действительно хотите, чтобы ваш подписчик получил сообщение, сначала запустите Subscriber
и используйте receive()
вместо receiveNoWait()
, а затемзапустить Publisher
.Это гарантирует, что подписка существует при отправке сообщения и что клиент ожидает получения сообщения, прежде чем выйти.