当我在一台机器上运行以下代码时,我得到了org.apache.tomcat.dbcp.dbcp.BasicDataSource
的tomcat实现,当我在另一台机器上运行时,我得到了org.apache.commons.dbcp.BasicDataSource
的apache commons实现(显然会导致ClassCastException
})。只是想知道为什么代码中没有变化而context.xml
会导致返回两个不同的DataSource实现?
Context context = (Context) initialContext.lookup("java:/comp/env");
return (DataSource) context.lookup("jdbc/dbName");
答案 0 :(得分:1)
我想你不是在战争中包括DBCP。所以它使用Tomcat中配置的任何DataSource。您可能正在使用两个不同版本的Tomcat,或者至少它们的配置不同;一个必须有commons-dbcp.jar而另一个必须有tomcat-dbcp.jar。