Я использую http-client с spring-rabbit в Spring Boot 1.5.6.RELEASE, и он отлично работает.
В Spring Boot 2.0.2.RELEASEhttp-client исключен из spring-rabbitpom.xml.
Я не хочу вручную добавлять http-client и отслеживать версии между загрузочными версиями.
spring-boot-starter-amqp-1.5.6.RELEASE:
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
</dependency>
spring-boot-starter-amqp-2.0.2.RELEASE:
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
<version>2.0.3.RELEASE</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<artifactId>http-client</artifactId>
<groupId>com.rabbitmq</groupId>
</exclusion>
</exclusions>
</dependency>
Почему http-client исключен и могу ли я включить его без определения версии? Версия - 2.0.1.RELEASE, но она не извлекается как свойство в spring-rabbit.
amqp-client не то же самое. Я использую org.springframework.amqp.rabbit.core.RabbitManagementTemplate, и он зависит от com.rabbitmq.http.client.Client, поэтому мне нужен http-client.




Согласно документации Spring AMQP, зависимость com.rabbitmq:http-client теперь необязательна. По-видимому, это было изменено, чтобы разрешить несколько клиентских реализаций.
When the management plugin is enabled, the RabbitMQ server exposes a REST API to monitor and configure the broker. A Java Binding for the API is now provided. The com.rabbitmq.http.client.Client is a standard, immediate and, therefore, blocking API. It is based on the Spring Web module and its RestTemplate implementation. On the other hand, the com.rabbitmq.http.client.ReactorNettyClient is a reactive, non-blocking implementation based on the Reactor Netty project.
The hop dependency (com.rabbitmq:http-client) is now also optional.
Если вы хотите использовать стандартный http-клиент, вы можете добавить зависимость. Обратите внимание на то, что вам не нужно самостоятельно отслеживать правильную версию. Версия выбирается автоматически на основе вашей версии spring-boot-starter-amqp.
// Maven
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>http-client</artifactId>
</dependency>
// Gradle
compile("com.rabbitmq:http-client")
Вы также можете обратиться к соответствующему проекту GitHub, чтобы узнать, как включить конкретного клиента: rabbitmq / хмель
Извини за это. В моем случае я заметил следующее. Автоматическая версия действительно работает для меня при определении зависимостей RabbitMQ в пользовательской библиотеке, включая эту библиотеку и зависимости http-client в моем приложении бок о бок. Когда я перенес зависимости http-клиента в библиотеку, мне нужно было установить версии вручную. В настоящее время добавлены com.rabbitmq:http-client=2.0.1.RELEASE и io.projectreactor.ipc:reactor-netty=0.7.1.RELEASE
думаю что заменен на
<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.1.2</version> <scope>compile</scope> </dependency>