Ich versuche eine Spring Boot-App (1.4.7.RELEASE) auszuführen, die Nachricht an eine RabbitMQ-Warteschlange ausspuckt. Mein Build arbeitet erfolgreich, aber wenn ich versuche, die App von mvn clean spring-boot:run
zu laufen, erhalte ich die folgende Fehlermeldung in der Datei ProduceMessage.javaRabbitMQ MessageConverter gibt Fehler beim Ausführen der Spring Boot-App
@PropertySource("classpath:application.properties")
@Component
@ContextConfiguration("classpath:META-INF/spring/rabbitmq-producer.xml")
public class ProduceMessage {
private static final Logger logger = LoggerFactory.getLogger(ProduceMessage.class.getName());
@Autowired
private RabbitTemplate myEventTemplate;
@Autowired
private MessageConverter ctdMessageConverter;
@Value("${fieldChangedEvent.MainQueue}")
private String mainQ;
/*
* (non-Javadoc)
*
* @see com.ge.predix.dispatcherqproducer.api.produceFieldChangedEvent#
* produceFieldChangedEvent(com.ge.dsp.pm.solution.service.fieldchanged.
* FieldChangedEvent)
*/
public boolean produceStringMessage(String data) {
logger.debug("In produceStringMessage......");
MessageProperties prop = new MessageProperties();
prop.setContentType(MessageProperties.CONTENT_TYPE_TEXT_PLAIN);
Message msg = ctdMessageConverter.toMessage(data, prop);
logger.debug("publishing string to ......= " + mainQ);
myEventTemplate.convertAndSend(mainQ, msg);
return true;
}
}
die Fehler:
2017-10 -04 11: 06: 08.830 [0; 39m [32m INFO [0; 39m [35m62162 [0; 39m [2m --- [0; 39m [2m [haupt] [0; 39m [36mo.apache.catalina.core .StandardService [0; 39m [2m: [0; 39m Stoppen Service [Tomcat] [2m2017-10-04 11: 06: 08.849 [0; 39m [32m INFO [0; 39m [35m62162 [0; 39m [2m- - [0; 39m [2m [Haupt] [0; 39m [36mutoConfigurationReportLog gingInitializer [0; 39m [2m: [0; 39m
Fehler beim Starten von ApplicationContext. Um den Autokonfigurationsbericht anzuzeigen, führen Sie Ihre Anwendung erneut mit aktiviertem Debug aus.
[2m2017-10-04 11: 06: 08.944 [0; 39m [31mERROR [0; 39m [35m62162 [0; 39m [2m --- [0; 39m [2m [haupt] [0; 39m [ 36mo.sbdLoggingFailureAnalysisReporter [0; 39m [2m: [0; 39m
*************************** Applikation kann nicht starten *************************** Beschreibung: Feld ctdMessageConverter in com.ge.power.tcs.producer.ProduceMessage benötigt eine Bean des Typs 'org.springframework.amqp.support.converter.MessageConverter', das konnte nicht gefunden werden.
Aktion:
Betrachten Sie eine Bohne vom Typ definieren 'org.springframework.amqp.support.converter.MessageConverter' in Ihrer Konfiguration.
rabbitmq-producer.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rabbit="http://www.springframework.org/schema/rabbit"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:oxm="http://www.springframework.org/schema/oxm"
xsi:schemaLocation="http://www.springframework.org/schema/rabbit
http://www.springframework.org/schema/rabbit/spring-rabbit.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm.xsd">
<bean id="ctdMessageConverter"
class="org.springframework.amqp.support.converter.ContentTypeDelegatingMessageConverter">
<property name="delegates">
<map>
<entry key="text/plain" value-ref="simpleMessageConverter" />
</map>
</property>
</bean>
<bean id="simpleMessageConverter"
class="org.springframework.amqp.support.converter.SimpleMessageConverter" />
</beans>
Und tun Sie haben eine '@ Bean'-Definition für den Nachrichtenkonverter, den Sie hier einfügen möchten? –
its of import org.springframework.amqp.support.converter.MessageConverter; instance – sromit
Meine Frage ist, was genau haben Sie erwartet, hier injiziert zu werden, und warum war das Ihre Erwartung? Es ist nicht ersichtlich in dem Code, den Sie geteilt haben. –