junit java测试:comp/env
我的服务器端有一个代码如下的方法junit java测试:comp/env,junit,jndi,Junit,Jndi,我的服务器端有一个代码如下的方法 Context ctx = (Context)new InitialContext().lookup("java:comp/env"); 如何使用JUnit甚至独立应用程序在客户端测试此方法? 我试着做下面的事情,但还是失败了 @BeforeClass public static void setUpClass() throws Exception { // rcarver - setup the jndi context and th
Context ctx = (Context)new InitialContext().lookup("java:comp/env");
如何使用JUnit甚至独立应用程序在客户端测试此方法?
我试着做下面的事情,但还是失败了
@BeforeClass
public static void setUpClass() throws Exception {
// rcarver - setup the jndi context and the datasource
try {
// Create initial context
System.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.naming.java.javaURLContextFactory");
System.setProperty(Context.URL_PKG_PREFIXES,
"org.apache.naming");
InitialContext ic = new InitialContext();
ic.createSubcontext("java:");
ic.createSubcontext("java:/comp");
ic.createSubcontext("java:/comp/env");
ic.createSubcontext("java:/comp/env/jdbc");
// Construct DataSource
OracleConnectionPoolDataSource ds = new OracleConnectionPoolDataSource();
ds.setURL("jdbc:oracle:thin:@host:port:db");
ds.setUser("MY_USER_NAME");
ds.setPassword("MY_USER_PASSWORD");
ic.bind("java:/comp/env/jdbc/nameofmyjdbcresource", ds);
} catch (NamingException ex) {
Logger.getLogger(MyDAOTest.class.getName()).log(Level.SEVERE, null, ex);
}
}
例外是
NameNotFoundException:剩余名称:env
事实上,我认为在服务器中,一旦新的InitialContext(),客户端中所有先前的创建子上下文都是清晰的,是吗