2017-11-09 35 views
1

나는 지 MBeanServer JMX 지원을 사용하려고하고 는 MBeanServer에 대한 예외 아래 점점 : 나는 8 오픈 JDK 및 제이보스 제이 보스 서버, 아니 컴파일 시간 오류를 사용하고java.lang.NoSuchMethodError : org.springframework.jmx.support.MBeanServerFactoryBean.getObject() Ljavax/management/MBeanServer;

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 

.

클래스 구성의 anotations :

@Configuration 
@EnableJpaRepositories 
@EnableJpaAuditing 
@Import({ RepositoryRestMvcConfiguration.class,JMSSQSConfig.class}) 
@ComponentScan 
@EnableAutoConfiguration 
@EnableAspectJAutoProxy(proxyTargetClass = true) 
@EnableTransactionManagement(proxyTargetClass = true) 
@EnableScheduling 

방법 던지고있다 오류 :

@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 :

<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> 

내가 우분투 16.04, 64 비트 컴퓨터를 사용하고 있습니다. 이 모든 구성은 Windows 시스템에서 작동합니다. oracle-8 jdk를 사용했지만 동일한 오류가 발생했습니다. 버전 문제는 같지만 해결할 수 없습니다. 당신의 pom.xml 파일에서 다음

+0

당신의 봄 부트 버전은 무엇입니까? – mhshimul

+0

@mhshimul spring-boot-1.1.10 – Mousam

답변

0

제거 :

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

Worked, 고맙습니다. – Mousam

+0

스프링 부트 스타터는 이미 의존성이 필요합니다. 그러나 getObject() 메소드가없는 이전 버전 종속성을 제공하고있었습니다. – mhshimul

+0

같은 버전의 spring-boot-starter를 사용하는 Windows 컴퓨터를 사용하는 다른 사람들을 위해 일하고 있다는 것을 모릅니다. 우분투에만 오류가 발생했습니다. – Mousam