我将基于Spring Boot的应用程序配置为与activemq / jms一起使用远程处理。侦听部分运行正常,但是在实现发送部分时遇到问题。

对于发件人,我回到了“经典”骆驼和春天,因为我为此找到了更多可行的示例,但仍然收到错误:

org.springframework.beans.factory.BeanNotOfRequiredTypeException:
Bean named 'myProxy' must be of type [foo.bar.YouNameIt],
but was actually of type [com.sun.proxy.$Proxy83]


这是我尝试加载代理定义的方式:

ApplicationContext context = new ClassPathXmlApplicationContext("config/spring.xml");
YouNameIt youNameIt = context.getBean("myProxy", YouNameIt.class);


这是spring.xml中的条目:

<camel:proxy id="myProxy"
    serviceInterface="foo.bar.IYouNameIt"
    serviceUrl="activemq:queue:site12345" />


我究竟做错了什么 ?

最佳答案

访问接口IYouNameIt而不是实现类YouNameIt

IYouNameIt youNameIt = context.getBean("myProxy", IYouNameIt.class);


有关完整的Spring远程处理示例,请参见here

07-24 19:18