首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >org.springframework.jmx.support.MBeanServerFactoryBean.getObject()Ljavax/management/MBeanServer;:java.lang.NoSuchMethodError

org.springframework.jmx.support.MBeanServerFactoryBean.getObject()Ljavax/management/MBeanServer;:java.lang.NoSuchMethodError
EN

Stack Overflow用户
提问于 2017-11-09 09:49:11
回答 1查看 545关注 0票数 1

我正在尝试使用MbeanServer jmx支持,并获得MbeanServer的以下异常:

代码语言:javascript
复制
Caused by: java.lang.NoSuchMethodError: org.springframework.jmx.support.MBeanServerFactoryBean.getObject()Ljavax/management/MBeanServer;
    at com.ctil.PaymentsApplication.mbeanServer(PaymentsApplication.java:239)
    at com.ctil.PaymentsApplication$$EnhancerBySpringCGLIB$$411b63e3.CGLIB$mbeanServer$3(<generated>)
    at com.ctil.PaymentsApplication$$EnhancerBySpringCGLIB$$411b63e3$$FastClassBySpringCGLIB$$c3de57c.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:312)
    at com.ctil.PaymentsApplication$$EnhancerBySpringCGLIB$$411b63e3.mbeanServer(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:166)
    ... 28 more

我使用的是openjdk-8和通配符jboss服务器,没有编译时错误。

类配置分析:

代码语言:javascript
复制
@Configuration
@EnableJpaRepositories
@EnableJpaAuditing
@Import({ RepositoryRestMvcConfiguration.class,JMSSQSConfig.class})
@ComponentScan
@EnableAutoConfiguration
@EnableAspectJAutoProxy(proxyTargetClass = true)
@EnableTransactionManagement(proxyTargetClass = true)
@EnableScheduling

抛出错误的方法:

代码语言:javascript
复制
@Bean
    public MBeanServer mbeanServer()  {
        System.out.println("INSIDE FACTORY CREATE******");
        SpecificPlatform platform = SpecificPlatform.get();
        if (platform != null) {
            return platform.getMBeanServer();
        }
        MBeanServerFactoryBean factory = new MBeanServerFactoryBean();
        factory.setLocateExistingServerIfPossible(true);
        factory.afterPropertiesSet();
        return factory.getObject();
    }


@Bean
public AnnotationMBeanExporter annotationMBeanExporter() throws MalformedObjectNameException {
    AnnotationMBeanExporter exporter = new AnnotationMBeanExporter();
    ObjectName name = new ObjectName("com.ctil.payments.transactionProcessor","transacionProcessorConfiguration","TransactionProcessorConfiguration");
    exporter.setServer(mbeanServer());
    exporter.setDefaultDomain("com.ctil.payments.transactionProcessor");

    if (!exporter.getServer().isRegistered(name)) {

        TransactionProcessorConfiguration config = new TransactionProcessorConfiguration();
        exporter.registerManagedResource(config, name);

    }
    return exporter;

}

Pom.xml:

代码语言:javascript
复制
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.tomcat</groupId>
                    <artifactId>tomcat-jdbc</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>javax.xml.soap</groupId>
            <artifactId>saaj-api</artifactId>
            <version>1.3.5</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-ws</artifactId>
        </dependency>

        <dependency>
            <groupId>wsdl4j</groupId>
            <artifactId>wsdl4j</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-oxm</artifactId>
        </dependency>

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jmx</artifactId>
             <version>2.0.8</version>
        </dependency> 

我使用的是ubuntu 16.04,64位机。请注意,所有这些配置都在windows系统中工作。我也尝试过使用oracle-8 jdk,但是得到了相同的错误。看起来像版本控制问题,但无法解决。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-09 10:11:55

从pom.xml中删除以下内容:

代码语言:javascript
复制
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jmx</artifactId>
        <version>2.0.8</version>
    </dependency> 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47198634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档