当前位置: 首页 > 知识库问答 >
问题:

spring boot构建得很好,但在运行时抛出javax.naming.nameNotFoundException:剩余名称:env/jmx/runtime

西门展
2023-03-14

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

org.springframework.beans.factory.BeanCreationException:创建类路径资源[org/springframework/boot/autociguration/jmx/jmxautociguration.class]中定义的名为“MBean exporter”的bean时出错:通过工厂方法实例化bean失败;嵌套异常为org.springframework.beans.beanInstantiationException:无法实例化[org.springframework.jmx.export.annotation.annotationmbeanexporter]:工厂方法'mbean exporter'引发异常;嵌套异常为org.springframework.beans.factory.beanCreationException:创建类路径资源[org/springframework/boot/autociguration/jmx/jmxautociguration.class]中定义的名为'mbean server'的bean时出错:通过工厂方法实例化bean失败;嵌套异常为org.springframework.beans.BeanInstantiationException:无法实例化[javax.management.mbeanServer]:工厂方法'mbean server'引发异常;嵌套异常为org.springframework.jmx.MBeanServerNotFoundException:无法从JNDI检索WebLogic MBeanServer;嵌套异常为javax.naming.nameNotFoundException:剩余名称:env/jmx/runtime at org.springframework.beans.factor.support.constructorresolver.instantiateusingfactorymethod(constructorresolver.java:599)at org.springframework.beans.factor.support.abstractautoWirecapablebeanfactor.instantiateusingfactorymethod(AnRegistry.java:230)位于org.springframework.beans.factory.support.abstractbeanfactory.dogetBean(abstractbeanfactory.java:299)位于org.springframework.beans.factory.support.abstractbeanfactory.getBean(abstractbeanfactory.194)位于ringapplication.run(springapplication.java:956)在com.avada.main.application.main(application.java:15)

共有2个答案

张献
2023-03-14

您可以通过添加以下行跳过加载的spring boot配置:

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

spring boot新版本(当前版本:1.5.4)中的容器尝试在application server jar中加载其他bean,因此需要添加此设置的排除(如:EndpointMBeanExportaToConfiguration)。

施招
2023-03-14

我也遇到了同样的问题,并通过从spring boot配置中排除JMXAutoConfiguration类来解决了这个问题。

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

spring似乎试图创建一个在weblogic api库中检测到的bean(MBeanExporter),而这个bean需要env/jmx/runtimeJNDI。

 类似资料:
  • 我有一个简单的RestController应用程序- 它在SpringBoot(http://localhost:8080/greeting)上工作得很好,但是当我创建一个WAR并将其部署到Tomcat(9.0.2)上时,它会抛出一个404。

  • 我决定学习如何调试Java EE应用程序。我有一个简单的JSF/EJB/JPA应用程序,我通过Intellij IDEA部署和运行它。这意味着我有一个所谓的run/debug配置,其中我指定了一个要部署的工件(一个war文件)、一个应用程序服务器路径(使用了wildfly-8.2.0.final/bin/standalone.bat)和一个部署后要在浏览器中打开的url(它是一个web应用程序)。

  • 我正在开发一个Java Web应用程序,并将其部署在Websphere Application Server中,

  • 我是詹金斯的新手,我有硒代码,我正在使用maven构建。当我以maven运行pom.xml文件时,我在pom.xml提到了maven的testng.xml文件- 请帮帮我我该如何进行 我已经反复检查并确保所有必要的插件和映射(如Git hub repo url)都可用。我甚至可以运行另一个项目,它的来源来自我的本地

  • Java程序的一个思路如下: 我期望输出如下: 但是得到 显然,try块正在抛出一个ClassNotFoundExcure,这是出乎意料的。你知道为什么代码会抛出这个而不是像预期的那样初始化Gum类吗?

  • 问题内容: 我尝试执行的几乎所有操作都收到“设备上没有剩余空间”错误。即使使用制表符自动完成命令! 但是当我做df -hi时得到: 在我看来,那里有无数的空间。df -i看起来也类似: 我在Amazon EC2 ubuntu 12.04实例上。 以下是错误弹出的一些示例: 但是服务器似乎正在运行,并且一切似乎都正常。到底是怎么回事? 问题答案: 可能是内存不足或其他地方有空间,它提示系统安装了溢出