Web项目中Junitc测试如何添加JNDI
Spring配置文件其中一行定义如下:
<bean id="DataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/CLS3_ONLINE"/>
</bean>
这里数据库连接调用Tomcat进行数据库的配置和管理,但是我们在单元测试中是无法调用tomcat的,所以添加如下代码设置JNDI:
System.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.naming.java.javaURLContextFactory");
System.setProperty(Context.URL_PKG_PREFIXES,"org.apache.naming");
InitialContext ic = new InitialContext();
OracleConnectionPoolDataSource ocpds = new OracleConnectionPoolDataSource();
ocpds.setURL("jdbc:oracle:thin:@ux207ntn.hpf.gov.hk:1562/u01cls3");
ocpds.setUser("CLS3");
ocpds.setPassword("abcd1234");
ic.createSubcontext("java:");
ic.createSubcontext("java:comp");
ic.createSubcontext("java:comp/env");
ic.createSubcontext("java:comp/env/jdbc");
ic.bind("java:comp/env/jdbc/CLS3_ONLINE", ocpds);
同时将org.apache.naming
这个jar包导入项目