Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring集成:使用JMX时自动连接队列失败_Java_Spring_Jmx_Spring Integration_Spring Jmx - Fatal编程技术网

Java Spring集成:使用JMX时自动连接队列失败

Java Spring集成:使用JMX时自动连接队列失败,java,spring,jmx,spring-integration,spring-jmx,Java,Spring,Jmx,Spring Integration,Spring Jmx,在添加JMX导出命名空间处理程序之前,我可以在测试类中使用@Autowired和@Qualifier自动连接两个QueueChannel实例 我手头没有确切的配置(这是一个工作中的问题,现在困扰着我的工作时间!),但我正在使用以下元素: <int-jmx:mbean-export default-domain="com.business" server="mbeanServer" /> <context:mbean-export /> <context:mbean-

在添加JMX导出命名空间处理程序之前,我可以在测试类中使用
@Autowired
@Qualifier
自动连接两个
QueueChannel
实例

我手头没有确切的配置(这是一个工作中的问题,现在困扰着我的工作时间!),但我正在使用以下元素:

<int-jmx:mbean-export default-domain="com.business" server="mbeanServer" />
<context:mbean-export />
<context:mbean-server />

当我定义了这三件事后,自动布线过程失败,抛出了一个
NoSuchBeanException
。但是,我可以看到有一些bean具有我队列的ID,因为我有一个后处理器,它在上下文中迭代所有bean


这是否与代理混淆
队列通道的声明类型有关,从而阻止按类型自动连接工作?

您需要使用接口而不是具体类进行自动连接,因为JMX导出将通道包装在代理中。对于
QueueChannel
使用
PollableChannel
,对于
DirectChannel
使用
SubscribableChannel


正是出于这个原因,最好使用接口而不是具体类进行编码。

您需要使用接口而不是具体类进行自动连线,因为JMX导出将通道包装在代理中。对于
QueueChannel
使用
PollableChannel
,对于
DirectChannel
使用
SubscribableChannel


正是出于这个原因,使用接口而不是具体类编写代码始终是一种好做法。

什么是异常堆栈跟踪?什么是异常堆栈跟踪?嗨,Gary,谢谢你指出这一点。自动连线现在可以工作了,但我需要QueueChannel类的功能(在测试之间清除队列,根据大小断言)。我得到了类强制转换异常
$Proxy13无法强制转换到
o.s.I.c.QueueChannel`-我如何利用实现的方法?在这里找到了最简单的解决方法:我没有更好的解决方法。为了通过代理使这些方法可用,我们必须创建另一个接口,比如QueueOperations,声明这些方法并让QueueChannel实现它。欢迎打开JIRA'改进的票,我们将考虑它的未来版本。谢谢-我只是在测试中自动排队队列,所以在此期间,我刚刚分离出JMX功能,只有在不测试时才能启用。很高兴知道,以防我在其他地方遇到。嗨,加里,谢谢你指出这一点。自动连线现在可以工作了,但我需要QueueChannel类的功能(在测试之间清除队列,根据大小断言)。我得到了类强制转换异常
$Proxy13无法强制转换到
o.s.I.c.QueueChannel`-我如何利用实现的方法?在这里找到了最简单的解决方法:我没有更好的解决方法。为了通过代理使这些方法可用,我们必须创建另一个接口,比如QueueOperations,声明这些方法并让QueueChannel实现它。欢迎打开JIRA'改进的票,我们将考虑它的未来版本。谢谢-我只是在测试中自动排队队列,所以在此期间,我刚刚分离出JMX功能,只有在不测试时才能启用。很高兴知道,以防我在其他地方遇到这种情况。