Проблемы с jms: входящий канал-адаптер - PullRequest
0 голосов
/ 08 мая 2018

У меня есть следующая конфигурация Spring Integration для адаптера входящего канала:

<bean id="inputQueue"
    class="org.apache.activemq.command.ActiveMQQueue">
    <constructor-arg value="INBOUND.QUEUE" />
</bean>
<int:channel id="inputChannel">
    <int:queue ref="inputQueue"></int:queue>
</int:channel>

<jms:inbound-channel-adapter
    channel="inputChannel" connection-factory="activemqConnectionFactory"
    destination-name="inputQueue"></jms:inbound-channel-adapter>

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

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'inputChannel': Unsatisfied dependency expressed through constructor parameter 0: Could not convert argument value of type [org.apache.activemq.command.ActiveMQQueue] to required type [java.util.Queue]: Failed to convert value of type 'org.apache.activemq.command.ActiveMQQueue' to required type 'java.util.Queue'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'org.apache.activemq.command.ActiveMQQueue' to required type 'java.util.Queue': no matching editors or conversion strategy found
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:697) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:192) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1270) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1127) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:541) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:501) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760) ~[spring-beans-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869) ~[spring-context-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[spring-context-5.0.5.RELEASE.jar:5.0.5.RELEASE]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) [spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395) [spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) [spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1255) [spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1243) [spring-boot-2.0.1.RELEASE.jar:2.0.1.RELEASE]
    at com.example.demo.Example1Application.main(Example1Application.java:12) [classes/:na]

1 Ответ

0 голосов
/ 08 мая 2018

"org.apache.activemq.command.ActiveMQQueue не реализует Java.util.Queue. Это то, что у вас есть в трассировке стека до сих пор. С другой стороны, вам не нужно добавлять объявление <queue> в канал: вы определяете адаптер канала JMS для работы с ActiveMQ.

Еще одна проблема, которую вы объявляете destination-name="inputQueue", где это имя бина . Вы должны рассмотреть возможность использования только destination, который действительно является ссылкой на бин, или просто использовать это INBOUND.QUEUE в этом destination-name.

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