2010-05-27 64 views
0

我正尝试在WebSphere for Z/OS上部署的war文件中使用嵌入式Derby数据库。当我使用类似下面的代码创建一个数据库时,我使用包含在WebSphere服务器7.0中的derby.jar而不是版本10.5的derby.jar来创建derby版本10.3数据库,我将其包含在我的WEB-INF/lib目录中。使用不同版本的derby.jar,然后使用WebSphere中包含的版本?

Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance(); 
Connection conn = DriverManager.getConnection("jdbc:derby:testDB;create=true"); 
DatabaseMetaData dbmd = conn.getMetaData(); 
String productName = dbmd.getDatabaseProductName(); 
String productVersion = dbmd.getDatabaseProductVersion(); 

我怎么能强迫的WebSphere使用包含在derby.jar文件我包在我的战争文件org.apache.derby.jdbc.EmbeddedDriver类?

回答

1

我想你需要切换默认的类加载器才能首先查看Web应用程序。 指定PARENT_LAST记录为here:请参阅“设置Web模块中的类加载器”

但这是一个风险选项,因为它可能会影响所有其他可能在应用程序和战争之间重复的类。

1

在J2EE环境中,最好让服务器管理连接,而将JDBC提供程序放入WAR中通常不是个好主意。

WAS 7.0中的新增功能称为“独立资源提供程序”,它允许您将多个版本的Derby配置为在同一个JVM中并行运行。