我正在使用JUnit来测试我的应用程序。 在我的应用程序中,我使用DataSource来获取与数据库的连接。我从context.xml获取的所有数据库连接属性 因此,在使用Junit进行测试时,我编写了代码来初始化InitialContext并在DataSource中设置数据库属性, 但在获得连接时,我收到登录失败错误。 我不知道为什么会这样,请让我知道如何解决所有这些问题。
# For initialization i had written #
// 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
SQLServerConnectionPoolDataSource ds = new SQLServerConnectionPoolDataSource();
ds.setURL("jdbc:sqlserver://localhost:1433;DatabaseName=database");
ds.setUser("sa");
ds.setPassword("*****");
ic.bind("java:comp/env/jdbc/devTEST", ds);
// Code for getting connection it is written in another class
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/dev" + dbEnv.toUpperCase());
connection = ds.getConnection();
问题是当我从初始上下文对象获取DataSource对象时,Datasource对象中存在所有数据库连接属性但缺少密码所以我在创建数据库连接时获得了异常