Spring AMQP проект ничего не делает - PullRequest
0 голосов
/ 02 сентября 2018

Я уже несколько дней бьюсь над этой задачей, поэтому решил задать вопрос здесь.

Что ж, у меня есть удаленный сервер RabbitMQ, и у меня есть только разрешения на отправку и получение сообщений. Это значит, что я ничего не могу создать.

Итак, я хочу получать и / или отправлять сообщения. Но я не могу сделать это по какой-то причине. Приложение запускается, создается канал, инициализируются компоненты и т. Д. Но получатель и отправитель просто ничего не делают.

Я почти уверен, что проблема довольно проста, и я буду думать, что я идиот после ответа, но теперь я застрял.

Код ниже. Основной класс стандартный, без изменений.

ConfigurationClass:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class TestConfiguration {

    @Bean
    public Sender sender() {
        return new Sender();
    }

    @Bean
    public Receiver receiver() {
        return new Receiver();
    }
}

Отправитель:

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;

public class Sender {

    @Autowired
    private RabbitTemplate template;

    @Scheduled(fixedDelay = 1000, initialDelay = 500)
    public void send() {
        String message = "Hello World!";
        this.template.convertAndSend("ExchangeName","RoutingKey", message);
        System.out.println(" [x] Sent '" + message + "'");
    }
}

Получатель:

import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;

@RabbitListener(queues = "QueueName")
public class Receiver {

    @RabbitHandler
    public void receive(String in) {
        System.out.println(" [x] Received '" + in + "'");
    }
}

application.properties:

spring.rabbitmq.host=host.com
spring.rabbitmq.port=5673
spring.rabbitmq.username=username
spring.rabbitmq.password=password
spring.rabbitmq.ssl.enabled=true

Журналы:

2018-09-02 23:18:50.409  INFO 9092 --- [           main] com.application.Application    : Starting Application on WORK-PC with PID 9092 (started by Victor in ...\application)
2018-09-02 23:18:50.413  INFO 9092 --- [           main] com.application.Application    : No active profile set, falling back to default profiles: default
2018-09-02 23:18:50.473  INFO 9092 --- [           main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@52af26ee: startup date [Sun Sep 02 23:18:50 KRAT 2018]; root of context hierarchy
2018-09-02 23:18:51.138  INFO 9092 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.amqp.rabbit.annotation.RabbitBootstrapConfiguration' of type [org.springframework.amqp.rabbit.annotation.RabbitBootstrapConfiguration$$EnhancerBySpringCGLIB$$6653f575] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2018-09-02 23:18:51.908  INFO 9092 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2018-09-02 23:18:51.916  INFO 9092 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Bean with name 'rabbitConnectionFactory' has been autodetected for JMX exposure
2018-09-02 23:18:51.918  INFO 9092 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Located managed bean 'rabbitConnectionFactory': registering with JMX server as MBean [org.springframework.amqp.rabbit.connection:name=rabbitConnectionFactory,type=CachingConnectionFactory]
2018-09-02 23:18:51.960  INFO 9092 --- [           main] o.s.c.support.DefaultLifecycleProcessor  : Starting beans in phase 2147483647
2018-09-02 23:18:51.970  INFO 9092 --- [cTaskExecutor-1] o.s.a.r.c.CachingConnectionFactory       : Attempting to connect to: [host.com:5673]
2018-09-02 23:18:52.718  INFO 9092 --- [cTaskExecutor-1] o.s.a.r.c.CachingConnectionFactory       : Created new connection: rabbitConnectionFactory#7a356a0d:0/SimpleConnection@25e05629 [delegate=amqp://username@159.69.17.11:5673/, localPort= 53053]
2018-09-02 23:18:53.158  INFO 9092 --- [           main] com.application.Application    : Started Application in 3.108 seconds (JVM running for 3.561)

И тогда ничего не происходит. Вопрос в том, что я делаю не так, почему это не работает так, как я хочу, и как это исправить?

Я понимаю, что копирование всего проекта и просьба решить все мои проблемы не очень хорошая практика, и я сожалею об этом, но я не вижу другого способа заставить мой код работать должным образом в данный момент. Буду рад любой помощи.

1 Ответ

0 голосов
/ 02 сентября 2018

Чтобы использовать аннотацию @Scheduled, сначала необходимо включить планирование с помощью @EnableScheduling.

Попробуйте добавить его в свой класс конфигурации:

@Configuration
@EnableScheduling
public class TestConfiguration { ... }

После того, как вы это исправите, вам, вероятно, нужно будет взглянуть и на комментарий Уоргри.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...