【问题标题】:Tomcat - Deploying application - datasource issueTomcat - 部署应用程序 - 数据源问题
【发布时间】:2017-03-09 13:48:58
【问题描述】:

我有一个 tomcat 容器和两个 Web 应用程序(jhipster 应用程序)。第一个仅用于前端部分,第二个用于后端。

在 tomcat 上,我有两个 webapps 文件夹 - webappswebapps2。当我尝试在 webapps2 文件夹中部署前端应用程序时出现错误:

org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean [HikariDataSource (HikariPool-0)] with key 'dataSource'; nested exception is javax.management.InstanceAlreadyExistsException: com.zaxxer.hikari:name=dataSource,type=HikariDataSource
at org.springframework.jmx.export.MBeanExporter.registerBeanNameOrInstance(MBeanExporter.java:625) ~[spring-context-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.jmx.export.MBeanExporter.registerBeans(MBeanExporter.java:550) ~[spring-context-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.jmx.export.MBeanExporter.afterSingletonsInstantiated(MBeanExporter.java:432) ~[spring-context-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:792) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:838) ~[spring-context-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537) ~[spring-context-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) ~[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
at org.springframework.boot.SpringApplication.doRun(SpringApplication.java:347) ~[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:295) ~[spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
at org.springframework.boot.context.web.SpringBootServletInitializer.run(SpringBootServletInitializer.java:149) [spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
at org.springframework.boot.context.web.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:129) [spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
at org.springframework.boot.context.web.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:85) [spring-boot-1.3.0.RELEASE.jar:1.3.0.RELEASE]
at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:175) [spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5623) [catalina.jar:7.0.72]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) [catalina.jar:7.0.72]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899) [catalina.jar:7.0.72]
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875) [catalina.jar:7.0.72]
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652) [catalina.jar:7.0.72]
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1092) [catalina.jar:7.0.72]
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1984) [catalina.jar:7.0.72]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_101]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_101]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_101]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_101]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_101]  

我已经注册了两个服务,后端部分在 8080 端口上工作,前端部分在 7070 上工作。我知道最好的选择是在 apache Web 服务器上部署前端应用程序,但在这种情况下,我需要从 jhipster 项目中挑选出应用程序,但我没有时间。

有没有人知道这里发生了什么以及如何解决这个问题?

请注意,如果我使用两个 tomcat 服务器,一切正常。

【问题讨论】:

    标签: java tomcat jhipster


    【解决方案1】:

    我无法发表评论,所以我会回答。

    这似乎是问题所在。 org.springframework.jmx.export.UnableToRegisterMBeanException:无法使用键“dataSource”注册 MBean [HikariDataSource (HikariPool-0)];嵌套异常是 javax.management。InstanceAlreadyExistsException:com.zaxxer.hikari:name=dataSource,type=HikariDataSource

    这两个应用程序使用相同的名称似乎存在冲突。可能是两个具有相同名称数据源的 bean。

    【讨论】:

    • 好吧,我会进入这两个 webapps 并检查我的数据源设置,但我看到这已经在 stackoverflow 上讨论过,如果您需要更多帮助,请点击此处stackoverflow.com/questions/27440985/…
    • 是的,有道理...这两个应用程序使用相同的 bean 名称。
    • 我已将 DatabaseConfiguration.class 中的方法 dataSource 更改为 dataSource2 并且我的应用程序工作正常。
    猜你喜欢
    • 2015-04-15
    • 2023-03-14
    • 2018-07-14
    • 2019-04-30
    • 2012-01-16
    • 2017-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多