栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SpringBootJNDI数据源抛出java.lang.ClassNotFoundException:org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFact

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBootJNDI数据源抛出java.lang.ClassNotFoundException:org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFact

我通过

factory
在我的
Resource
定义中设置属性解决了这个问题。
resource.setProperty("factory","org.apache.tomcat.jdbc.pool.DataSourceFactory");

@Beanpublic TomcatEmbeddedServletContainerFactory embeddedServletContainerFactory(){    return new TomcatEmbeddedServletContainerFactory() {        @Override        protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(     Tomcat tomcat) { tomcat.enableNaming(); return super.getTomcatEmbeddedServletContainer(tomcat);        }        @Override        protected void postProcessContext(Context context) { ContextResource resource = new ContextResource(); resource.setName("jdbc/myDataSource"); resource.setType(DataSource.class.getName()); resource.setProperty("factory", "org.apache.tomcat.jdbc.pool.DataSourceFactory"); resource.setProperty("driverClassName", "com.ibm.db2.jcc.DB2Driver"); resource.setProperty("url", "url"); resource.setProperty("username", "user"); resource.setProperty("password", "*****"); context.getNamingResources().addResource(resource);        }    };}

根据tomcat 8文档,应该通过查看

DataSource
type 自动推断db pool factory类型,并且以某种方式将其默认为DBCP
factory,并且该类不在我的类路径中。

我想可以通过使

tomcat-dbcp-**
jars可用来解决问题,但是我不确定如何使用Spring Boot进行操作,即使使用Spring
Boot也可以做到这一点。

我觉得奇怪的是,Spring Boot没有将tomcat-dbcp依赖项作为启动程序POM的一部分,而是使用DBCP DataSource工厂作为默认工厂。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/670621.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号