Spring AMQP-Fehler: Die Listener-Methode konnte mit der eingehenden Nachricht nicht aufgerufen werdenJava

Java-Forum
Guest
 Spring AMQP-Fehler: Die Listener-Methode konnte mit der eingehenden Nachricht nicht aufgerufen werden

Post by Guest »

Ich habe Kurse:

Code: Select all

public class MqMessage implements Serializable {
private String event;
private String absolutePath;
private boolean isDirectory;
private Integer hash;
private Node node;

get/set
}
Konfigurationsklasse:

Code: Select all

public class RabbitConfiguration {

@Bean
public ConnectionFactory connectionFactory() {
CachingConnectionFactory connectionFactory =
new CachingConnectionFactory("localhost");
return connectionFactory;
}

@Bean
public AmqpAdmin amqpAdmin() {
return new RabbitAdmin(connectionFactory());
}

@Bean
public RabbitTemplate rabbitTemplate() {
RabbitTemplate template = new RabbitTemplate(connectionFactory());
template.setExchange("exchange-events");
return template;
}

//объявляем очередь
@Bean
public Queue myQueue1() {
return new Queue("queue-events");
}

@Bean
public FanoutExchange fanoutExchangeA() {
return new FanoutExchange("exchange-events");
}

@Bean
public Binding binding1() {
return BindingBuilder.bind(myQueue1()).to(fanoutExchangeA());
}
Nachricht senden

Code: Select all

    public class ServerHandler implements EventHandler {

//сама структура отражающая состояние файлов, содеражащая метоы для работы с ними
@Autowired
Node fileTreeRoot;

SimpleMessageConverter simpleMessageConverter;

@Override
public void setRoot(Node fileTreeRoot) {
this.fileTreeRoot = fileTreeRoot;
}
@Autowired
RabbitTemplate rabbitTemplate;

//логика обработки событий
@Override
public void eventHandle(String event, String path) {

/*business logic */
rabbitTemplate.setExchange("exchange-events");

rabbitTemplate.convertAndSend(new MqMessage(event,fileTreeRoot));
return;
}

public ServerHandler() {

}
Listener:

Code: Select all

public class Client {
Node rootNodeClient = new Node();
EventHandler handlerClient = new ClientHandler();

@RabbitListener(queues = "queue-events")
public void onMessage(MqMessage message) {
System.out.println(message.getNode().hashCode());
rootNodeClient = message.getNode();
}
ein Fehler tritt nur beim Starten der App auf

2017-08-08 12:58:02.128 WARN 5024 --- [cTaskExecutor-1]
s.a.r.l.ConditionalRejectingErrorHandler: Ausführung der Rabbit-Nachricht
Listener fehlgeschlagen.
org.springframework.amqp.rabbit.listener.Exception.ListenerExecutionFailedException:
Listener-Methode konnte mit der eingehenden Nachricht nicht aufgerufen werden
Ursache:
org.springframework.messaging.handler.annotation.support.MethodArgumentNotValidException:
Methodenparameter bei Index 0 in public void konnte nicht aufgelöst werden
prcjt.client.Client.onMessage(prcjt.message.MqMessage): 1 Fehler:
[Fehler im Objekt „Nachricht“: Codes []; Argumente []; Standardmeldung
[Payload-Wert darf nicht leer sein]]

Fehler existiert nicht immer
Bitte helfen Sie

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post