Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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 带有JMX身份验证的Spring_Java_Spring_Jmx - Fatal编程技术网

Java 带有JMX身份验证的Spring

Java 带有JMX身份验证的Spring,java,spring,jmx,Java,Spring,Jmx,我可以将一个类注册到MBean中,但无法通过jconsole进行连接。尽管我已经通过JVM参数禁用了jmx身份验证,但我无法连接运行此应用程序的原因 这是我的java类、spring属性文件和JVM参数 package com.mkyong.jmx; public interface JmxCoreComands { public void start(); public void stop(); public void report(); } package

我可以将一个类注册到MBean中,但无法通过jconsole进行连接。尽管我已经通过JVM参数禁用了jmx身份验证,但我无法连接运行此应用程序的原因

这是我的java类、spring属性文件和JVM参数

package com.mkyong.jmx;

public interface JmxCoreComands {
    public void start();
    public void stop();
    public void report();   
}


package com.mkyong.jmx;

import org.springframework.stereotype.Service;

@Service
public class JmxService implements JmxCoreComands {

    @Override
    public void start() {
        System.out.println("Jmx Service start");
    }

    @Override
    public void stop() {
        System.out.println("jmx service stop");
    }

    @Override
    public void report() {
        System.out.println("jmx service report");
    }

}
Spring属性XML:

<bean id="jmxAdapter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false">
        <property name="beans">
            <map>
                <entry key="SPRING:Name=TestRun">
                    <ref bean="jmxService" />
                </entry>
            </map>
        </property>
        <!-- managemethods property starts -->
        <property name="assembler">
            <bean
                class="org.springframework.jmx.export.assembler.InterfaceBasedMBeanInfoAssembler">
                <property name="managedInterfaces">
                    <value>com.mkyong.jmx.JmxCoreComands</value>
                </property>
            </bean>
        </property>
        <!-- managemethods property ends -->
    </bean>
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8014 
-Dcom.sun.management.jmxremote.authenticate=false 
-Xmx1024M 
-Xdebug 
-Xnoagent 
-Xrunjdwp:transport=dt_socket,address=8454,server=y,suspend=n 
-Djava.compiler=NONE

在如下更改JVM配置之后,我能够通过JMX连接应用程序

-Djava.rmi.server.hostname=127.0.0.1
-Dcom.sun.management.jmxremote.port=8014
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

是否根本无法将JVisualVM连接到JMXServer,或者只是找不到MXBean?--有任何错误/异常吗?顺便说一句:You bean是MBean而不是MXBean(MXBean的命名约定是接口的名称以“MXBean”结尾)-但目前这应该没有问题,因为我可以使用telnet 8014端口,但我无法使用空用户名和密码通过jconsole建立连接。我使用了JMX severeal time,所以我确信我在正确的位置填充了正确的参数。除此之外,java站点中没有发生异常。它是远程连接吗?防火墙?您使用哪个连接字符串?您的应用程序是在tomcat上运行的Webapplication吗?