在近期的国库B/S项目中,需要设计大量的报表,而定义报表往往需要指定数据库连接。一般情况下,JDBC连接已经足够。但由于当前项目所使用的DB2数据库的License只允许最大5个用户并发,因此,通过JNDI定义数据库连接池成为首选方案。
在WAS环境下,只需要写出以下的代码即可以获得JNDI资源:
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("jdbc/TntDB");
...
然而,由于我们的测试环境并不在WAS下,或者完全是纯粹的JAVA环境,因此,需要调用以下的代码:
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");
env.put(Context.PROVIDE_URL, "iiop://11.24.115.30:2809");
DataSource ds = (DataSource) ctx.lookup("jdbc/TntDB");
要使上述代码正确工作,必须把JDK设置为WAS同版本的IBM JDK。另外,需要把$WAS/lib以下的jar文件添加到项目的类路径:
admin.jar
bootstrap.jar
dynacache.jar
ecutils.jar
emf.jar
ffdc.jar
idl.jar
iwsorb.jar
j2c.jar
j2cImpl.jar
j2cIntf.jar
j2ee.jar
management.jar
naming.jar
namingclient.jar
ras.jar
rsadaptercci.jar
rsadapterspi.jar
rsaexternal.jar
runtimefw.jar
txClient.jar
txClientPrivate.jar
utils.jar
webcontainer.jar
wsexception.jar
参考URL: