Вам необходимо добавить ключ маршрутизации к @QueueBinding
...
key = Amqp.BODY_WEIGHT_NEW
(это то, что делает предложение with
в BindingBuilder
).
EDIT
У меня отлично работает ...
@SpringBootApplication
open class So55928905Application {
@RabbitListener(bindings = [QueueBinding(value = Queue("foo"),
exchange = Exchange("amqp.topic"),
key = ["foo"])])
fun `in`(`in`: String) {
}
companion object {
@JvmStatic
fun main(args: Array<String>) {
SpringApplication.run(So55928905Application::class.java, *args)
}
}
}
EDIT2
Проблема в том, что ваше биржевое имя MQTT публикует в стандарте amq.topic
, а не amqp.topic
.
@SpringBootApplication
open class So55928905Application {
@RabbitListener(bindings = [QueueBinding(value = Queue("foo"),
exchange = Exchange(name = "amq.topic", type = "topic"),
key = ["foo"])])
fun listen(string: String) {
println(string)
}
companion object {
@JvmStatic
fun main(args: Array<String>) {
SpringApplication.run(So55928905Application::class.java, *args)
}
}
}