我有一个现有的应用程序通过gradle构建正常但是当我通过嵌入式tomcat服务器运行它时,我得到以下异常。关于如何解决的任何想法?
org.springframework.beans.factory.BeanCreationException:错误 用名称&m; mbeanExporter'创建bean。在类路径资源中定义 [组织/ springframework的/引导/自动配置/ JMX / JmxAutoConfiguration.class]: 通过工厂方法进行Bean实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:失败 实例 [org.springframework.jmx.export.annotation.AnnotationMBeanExporter]: 工厂方法' mbeanExporter'抛出异常;嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为&m; 39的mbeanServer'在类路径资源中定义 [组织/ springframework的/引导/自动配置/ JMX / JmxAutoConfiguration.class]: 通过工厂方法进行Bean实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:失败 实例化[javax.management.MBeanServer]:工厂方法 ' Mbean服务器'抛出异常;嵌套异常是 org.springframework.jmx.MBeanServerNotFoundException:失败 从JNDI检索WebLogic MBeanServer;嵌套异常是 javax.naming.NameNotFoundException:剩余名称:env / jmx / runtime 在 org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1119) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1014) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) 在 org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:303) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755) 在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) 在 org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) 在 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:687) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:321) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:967) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:956) 在com.avada.main.Application.main(Application.java:15)
答案 0 :(得分:5)
我遇到了同样的问题,并通过从Spring Boot配置中排除JmxAutoConfiguration
类来修复它。
@SpringBootApplication(exclude = JmxAutoConfiguration.class)
public class Application {...}
看起来Spring试图创建一个在weblogic api库中检测到的bean(mbeanExporter
),这个bean需要env/jmx/runtime
JNDI。
答案 1 :(得分:3)
您可以通过添加以下行来跳过Spring Boot的加载配置:
@EnableAutoConfiguration(exclude = { JmxAutoConfiguration.class, EndpointMBeanExportAutoConfiguration.class})
新版Spring Boot中的容器(当前:1.5.4)尝试在应用程序服务器jar中加载其他bean,因此您需要添加此设置的排除(如:EndpointMBeanExportAutoConfiguration)。
答案 2 :(得分:2)
对我而言,将排除放在:
@EnableAutoConfiguration(exclude = JmxAutoConfiguration.class)
答案 3 :(得分:1)
MBean导出器认为它在Weblogic上运行:
无法从JNDI检索WebLogic MBeanServer
只有在类路径上weblogic.management.Helper
时才会发生这种情况。您需要从类路径中删除该类。如果您不确定该类可能在哪里,则使用-verbose:class
运行Tomcat会告诉您。