Java QuickFIXJ MBeanServerInvocationHandler.newProxyInstance参数类型错误

Java QuickFIXJ MBeanServerInvocationHandler.newProxyInstance参数类型错误,java,jmx,quickfix,mbeans,quickfixj,Java,Jmx,Quickfix,Mbeans,Quickfixj,在为QFJ构建JMX客户机服务时,我在使用不同的MBean接口时遇到了错误。我需要调用ConnectorAdminBean中的方法,但它不能绑定到SessionAdminBean的方法。引发的错误为: newProxyInstance() in MBeanServerInvocationHandler cannot be applied to: interfaceClass: (Expected) java.lang.Class<T> | (Actual) ConnectorAdm

在为QFJ构建JMX客户机服务时,我在使用不同的MBean接口时遇到了错误。我需要调用ConnectorAdminBean中的方法,但它不能绑定到SessionAdminBean的方法。引发的错误为:

newProxyInstance() in MBeanServerInvocationHandler cannot be applied to: 
interfaceClass: (Expected) java.lang.Class<T> | (Actual) ConnectorAdminMBean.class
然而,当我尝试这样做时,它抛出了一个错误,即第三个参数是错误的:

ObjectName mBeanConnector = new ObjectName("org.quickfixj:type=Connector,role=Initiator,id=1");
SessionAdminMBean mBeanConnectorProxy = MBeanServerInvocationHandler.newProxyInstance(jmxConnectionInstance.getmBeanServerConnection(), mBeanConnector, ConnectorAdminMBean.class, true);
我已经研究了各自的接口,但没有发现任何差异

package org.quickfixj.jmx.mbean.session;
import java.io.IOException;
import javax.management.ObjectName;
import quickfix.SessionNotFound;
public interface SessionAdminMBean {
    String getBeginString();
    String getTargetCompID();
    String getTargetSubID();
    ...
与之相比:

package org.quickfixj.jmx.mbean.connector;
import java.io.IOException;
import javax.management.openmbean.TabularData;
public interface ConnectorAdminMBean {
    String getRole() throws IOException;
    void stop(boolean var1) throws IOException;
    void stop() throws IOException;
    TabularData getSessions() throws IOException;
    String getHostName() throws IOException;
    int getQueueSize();
}

请说明接口ConnectorAdminBean无法绑定到类的原因。谢谢

通过将参数类与MBean代理类相匹配,即通过更改:

SessionAdminMBean mBeanConnectorProxy = MBeanServerInvocationHandler.newProxyInstance(jmxConnectionInstance.getmBeanServerConnection(), mBeanConnector, ConnectorAdminMBean.class, true);

package org.quickfixj.jmx.mbean.connector;
import java.io.IOException;
import javax.management.openmbean.TabularData;
public interface ConnectorAdminMBean {
    String getRole() throws IOException;
    void stop(boolean var1) throws IOException;
    void stop() throws IOException;
    TabularData getSessions() throws IOException;
    String getHostName() throws IOException;
    int getQueueSize();
}
SessionAdminMBean mBeanConnectorProxy = MBeanServerInvocationHandler.newProxyInstance(jmxConnectionInstance.getmBeanServerConnection(), mBeanConnector, ConnectorAdminMBean.class, true);
ConnectorAdminMBean mBeanConnectorProxy = MBeanServerInvocationHandler.newProxyInstance(jmxConnectionInstance.getmBeanServerConnection(), mBeanConnector, ConnectorAdminMBean.class, true);