添加 Environment 就会出现run error问题

来源:2-5 启动日志优化

ming1

2022-05-05

import org.springframework.core.env.Environment;
添加
Environment env = app.run(args).getEnvironment();
会出现错误日志。
注释掉这句代码就正常。
重新更新了maven .M2的包也没有解决这个问题。
有什么方法解决这个问题,什么原因造成的。

11:37.360 INFO  com.newdemoone.demoone.config.DemonApplication    :55   main     Starting DemonApplication using Java 1.8.0_311 on 戴朝明 with PID 15824 (D:\demoone\target\classes started by xmcb0 in D:\demoone)
11:37.360 INFO  com.newdemoone.demoone.config.DemonApplication    :640  main     No active profile set, falling back to 1 default profile: "default"
11:37.431 INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer      :108  main     Tomcat initialized with port(s): 8088 (http)
11:37.432 INFO  org.apache.coyote.http11.Http11NioProtocol        :173  main     Initializing ProtocolHandler ["http-nio-8088"]
11:37.432 INFO  org.apache.catalina.core.StandardService          :173  main     Starting service [Tomcat]
11:37.432 INFO  org.apache.catalina.core.StandardEngine           :173  main     Starting Servlet engine: [Apache Tomcat/9.0.62]
11:37.440 INFO  o.a.c.c.ContainerBase.[Tomcat-1].[localhost].[/]  :173  main     Initializing Spring embedded WebApplicationContext
11:37.440 INFO  o.s.b.w.s.c.ServletWebServerApplicationContext    :290  main     Root WebApplicationContext: initialization completed in 79 ms
11:37.468 WARN  o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext:591  main     Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'springApplicationAdminRegistrar' defined in class path resource [org/springframework/boot/autoconfigure/admin/SpringApplicationAdminJmxAutoConfiguration.class]: Invocation of init method failed; nested exception is javax.management.InstanceAlreadyExistsException: org.springframework.boot:type=Admin,name=SpringApplication
11:37.469 INFO  org.apache.catalina.core.StandardService          :173  main     Stopping service [Tomcat]
11:37.473 INFO  o.s.b.a.l.ConditionEvaluationReportLoggingListener:136  main     

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
11:37.482 ERROR org.springframework.boot.SpringApplication        :830  main     Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'springApplicationAdminRegistrar' defined in class path resource [org/springframework/boot/autoconfigure/admin/SpringApplicationAdminJmxAutoConfiguration.class]: Invocation of init method failed; nested exception is javax.management.InstanceAlreadyExistsException: org.springframework.boot:type=Admin,name=SpringApplication
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:953)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:740)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:415)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)
	at com.newdemoone.demoone.config.DemonApplication.main(DemonApplication.java:24)
Caused by: javax.management.InstanceAlreadyExistsException: org.springframework.boot:type=Admin,name=SpringApplication
	at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1898)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:966)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:900)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:324)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
	at org.springframework.boot.admin.SpringApplicationAdminMXBeanRegistrar.afterPropertiesSet(SpringApplicationAdminMXBeanRegistrar.java:129)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800)
	... 16 common frames omitted
写回答

1回答

甲蛙

2022-05-05

一般启动失败是因为导错包了,可以对比下课程这一节的源码

org.slf4j.Logger;
org.slf4j.LoggerFactory;
org.springframework.boot.SpringApplication;
org.springframework.boot.autoconfigure.;
org.springframework.context.annotation.;
org.springframework.core.env.Environment;
下载视频          
0
1
ming1
找到问题了 : //SpringApplication.run(DemonApplication.class, args); 这语句已经run了。 Environment env = app.run(args).getEnvironment(); 这个语句也是run了 所以启动了两次 就会出现第一次启动成功,第二次启动就失败了。关闭了一个run即可。
2022-05-06
共1条回复

Spring Boot+Vue3前后端分离,实战wiki知识库系统

一课掌握前后端最火框架,更有职场竞争力

2524 学习 · 1671 问题

查看课程