使用不同版本的derby.jar然后是WebSphere包含的那个版本?

时间:2010-05-27 21:11:59

标签: java jdbc websphere derby mainframe

我正在尝试在WebSphere for Z / OS上部署的war文件中使用嵌入式Derby数据库。当我使用如下代码创建数据库时,我最终使用WebSphere server 7.0中包含的derby.jar而不是我的WEB-INF / lib目录中包含的版本10.5 derby.jar来创建derby版本10.3数据库。 / p>

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使用我在war文件中打包的derby.jar文件中包含的org.apache.derby.jdbc.EmbeddedDriver类?

2 个答案:

答案 0 :(得分:1)

我认为您需要先切换默认的类加载器以查看Web应用程序。 按照文档here指定PARENT_LAST:请参阅“在Web模块中设置类加载器”

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

答案 1 :(得分:1)

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

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