
我通过
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文档,应该通过查看
DataSourcetype 自动推断db pool factory类型,并且以某种方式将其默认为DBCP
factory,并且该类不在我的类路径中。
我想可以通过使
tomcat-dbcp-**jars可用来解决问题,但是我不确定如何使用Spring Boot进行 *** 作,即使使用Spring
Boot也可以做到这一点。
我觉得奇怪的是,Spring Boot没有将tomcat-dbcp依赖项作为启动程序POM的一部分,而是使用DBCP DataSource工厂作为默认工厂。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)