Spring Boot构建良好,但在运行时抛出javax. namenotfoundexception:剩余名称:env



我有一个通过gradle构建良好的现有应用程序,但当我通过嵌入式tomcat服务器运行它时,我得到以下异常。有办法解决吗?

org.springframework.beans.factory。BeanCreationException:错误在类路径资源中定义名为' mbeanexporters '的bean[org/springframework/boot/autoconfigure/jmx/JmxAutoConfiguration.class]:通过工厂方法进行Bean实例化失败;嵌套异常是org.springframework.beans.BeanInstantiationException: Failed to实例化[org.springframework.jmx.export.annotation.AnnotationMBeanExporter]:工厂方法' mbeanexporters '抛出异常;嵌套异常是org.springframework.beans.factory.BeanCreationException:错误创建bean名称'mbeanServer'定义在类路径资源[org/springframework/boot/autoconfigure/jmx/JmxAutoConfiguration.class]:通过工厂方法进行Bean实例化失败;嵌套异常是org.springframework.beans.BeanInstantiationException: Failed to实例化(management。MBeanServer]:工厂方法'mbeanServer'抛出异常;嵌套异常是org.springframework.jmx.MBeanServerNotFoundException: Failed to从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)

我有同样的问题,并通过从Spring Boot配置中排除JmxAutoConfiguration类来修复它。

@SpringBootApplication(exclude = JmxAutoConfiguration.class)
public class Application {...}

似乎Spring正在尝试创建一个在weblogic api库中检测到的bean (mbeanExporter),而这个bean需要env/jmx/runtime JNDI。

您可以通过添加以下行来跳过Spring Boot的加载配置:

@EnableAutoConfiguration(exclude = { JmxAutoConfiguration.class, EndpointMBeanExportAutoConfiguration.class})

新版本的Spring Boot(当前版本:1.5.4)中的容器尝试在应用服务器jar中加载其他bean,因此您需要添加此设置的排除(如:EndpointMBeanExportAutoConfiguration)

MBean导出器认为它运行在Weblogic上:

从JNDI检索WebLogic MBeanServer失败

只有当weblogic.management.Helper在类路径上时才会发生。您需要从类路径中删除那个类。如果您不确定这个类在哪里,运行Tomcat和-verbose:class将告诉您。

对于我来说,有效的是将排除放在:

@EnableAutoConfiguration(exclude = JmxAutoConfiguration.class)

相关内容

  • 没有找到相关文章

最新更新