java – 迁移到Tomcat 8:InstanceAlreadyExistsException数据源
发布时间:2020-12-14 16:30:38 所属栏目:Java 来源:网络整理
导读:我有一个关于Tomcat 8中的上下文配置的问题.我将项目从Tomcat 7迁移到8并且有异常的问题:如果配置中没有改变我发现错误: "2015-02-03 12:05:48,310 FIRST_ADMIN ERROR web.context.ContextLoader:331 - Context initialization failed org.springframework
我有一个关于Tomcat 8中的上下文配置的问题.我将项目从Tomcat 7迁移到8并且有异常的问题:如果配置中没有改变我发现错误:
"2015-02-03 12:05:48,310 FIRST_ADMIN ERROR web.context.ContextLoader:331 -> Context initialization failed org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to register MBean [org.apache.tomcat.dbcp.dbcp2.BasicDataSource@434990dd] with key 'dataSource'; nested exception is javax.management.InstanceAlreadyExistsException: Catalina:type=DataSource,host=localhost,context=/first- admin,class=javax.sql.DataSource,name="jdbc/datasource/first" 上下文的一部分: <Resource name="jdbc/datasource/first" auth="Container" type="javax.sql.DataSource" poolPreparedStatements="true" initialSize="25" maxActive="100" maxIdle="100" minIdle="25" username="us" password="pa" driverClassName="com.mysql.jdbc.Driver" validationQuery="select 1" testOnBorrow="true" url="jdbc:mysql://localhost:3306/firstproject?useUnicode=true&characterEncoding=UTF-8&profileSQL=false&autoSlowLog=false&slowQueryThresholdMillis=100&autoReconnect=true"/> 所以,它在tomcat 7中没有任何问题.在Tomcat 8中,我可以通过两种方式解决这个问题: >加入资源:singleton =“false”; 如果我明白tomcat为我的应用程序和jmx创建数据源,但在Tomcat 7中,它是单个对象,在Tomcat 8中它必须是不同的.所以我的问题是为什么这种情况发生了?我在文档中找不到有关此更改的任何信息.我有趣的是更好:创建单个数据源(我想是这样),或者通过工厂创建几个数据源. 解决方法
我有同样的错误,并通过将registration =“ignoreExisting”添加到mbean-export部分来解决它:
<context:mbean-export server="mbeanServer" default-domain="mydomain" registration="ignoreExisting" /> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |