我可以在一个Tomcat上运行两个(或更多)Spring启动应用程序吗?
我有两个应用程序打包为war
个文件,我想在一个Tomcat服务器上运行它们。但是,当我部署它们时,我得到以下异常:
org.springframework.jmx.export.UnableToRegisterMBeanException:
Unable to register MBean [org.springframework.boot.actuate.endpoint.jmx.DataEndpointMBean@2361d8ee] with key 'dumpEndpoint';
nested exception is javax.management.InstanceAlreadyExistsException: org.springframework.boot:type=Endpoint,name=dumpEndpoint
每个Spring-boot应用程序注册的默认端点(如/ health等)发生冲突。是否有一些解决方法或无法实现此设置?
感谢您的回复!
答案 0 :(得分:8)
如果您的应用程序包含多个Spring ApplicationContext,您可能会发现名称发生冲突。要解决此问题,您可以将 endpoints.jmx.uniqueNames 属性设置为true,以便MBean名称始终是唯一的。
endpoints.jmx.domain=myapp
endpoints.jmx.uniqueNames=true
答案 1 :(得分:3)
与@Maciej的答案类似。另一种方法是设置以下
spring.application.name=my-app-name
spring.jmx.default-domain=my-app-name
或application.yaml
:
spring:
application:
name: my-app-name
jmx:
default-domain: my-app-name
在Spring 1.5.9.RELEASE
答案 2 :(得分:0)
spring.jmx.default-domain=app-name
spring.jmx.unique-names=true