springboot項目配置druid在外部tomcat中啓動報錯:InstanceAlreadyExistsException

1.tomcat9中報錯

        ... 37 more
        Caused by: org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean [com.alibaba.druid.filter.stat.StatFilter@1dbef693] with key 'statFilter'; nested exception is javax.management.InstanceAlreadyExistsException: com.alibaba.druid.filter.stat:name=statFilter,type=StatFilter
                at org.springframework.jmx.export.MBeanExporter.registerBeanNameOrInstance(MBeanExporter.java:628)
                at org.springframework.jmx.export.MBeanExporter.registerBeans(MBeanExporter.java:550)
                at org.springframework.jmx.export.MBeanExporter.afterSingletonsInstantiated(MBeanExporter.java:432)
                at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:781)
                at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
                at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
                at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
                at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737)
                at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370)
                at org.springframework.boot.SpringApplication.run(SpringApplication.java:314)
                at org.springframework.boot.web.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:151)
                at org.springframework.boot.web.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:131)
                at org.springframework.boot.web.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:86)
                at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:169)
                at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5139)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
                ... 38 more
        Caused by: javax.management.InstanceAlreadyExistsException: com.alibaba.druid.filter.stat:name=statFilter,type=StatFilter
                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.jmx.support.MBeanRegistrationSupport.doRegister(MBeanRegistrationSupport.java:195)
                at org.springframework.jmx.export.MBeanExporter.registerBeanInstance(MBeanExporter.java:674)
                at org.springframework.jmx.export.MBeanExporter.registerBeanNameOrInstance(MBeanExporter.java:618)
                ... 53 more

2.解決
首先看報錯說的是InstanceAlreadyExistsException,也就是StatFilter(Druid內置用於統計監控信息的)實例已經起了,在啓動報重複異常。
一開始想的是重啓tomcat但是之前的進程沒關閉,然而ps -ef|grep tomcat 後發現就一個tomcat起着。
然後查看啓動日誌:
在這裏插入圖片描述
在這裏插入圖片描述
發現啓動日誌很長,而且有兩次初始連接池的情況,理所當然報錯了
然後想到之前對tomcat的server.xml進行了修改:
在這裏插入圖片描述
因爲註冊了一個域名,但是又想直接域名就能訪問到項目主頁,又不想通過代理轉發的方式,所以修改了server.xml
一開始是這樣配置的:

<Host name="www.cthlizi.cn"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
			<Context docBase="gmweb" path="" reloadable="false" />

這邊的appBase="webapps"會導致tomcat加載一次應用,然後有配置了Context ,其中docBase又會導致加載一次應用
所以需要修改這裏的配置,參照上面大圖

最後再次重啓tomcat發現沒有異常了,也不影響我的要求。

ps:http://www.cthlizi.cn/ 準備弄個人網站,慢慢搭建中…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章