public static void main(String[] args) {
String sql = "select * from test";
try {
Context context = new InitialContext();
DataSource datasource= (DataSource)context.lookup("java:/comp/env/dds");
Connection conn = datasource.getConnection();
PreparedStatement pst = conn.prepareStatement(sql);
ResultSet rs =(ResultSet) pst.executeQuery();
while(rs.next()) {
System.out.print("username:"+rs.getString(1)+"\t");
System.out.println("password:"+rs.getString(2));
}
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.lookup(Unknown Source)
at com.lisu.myjdbc.DbUtilsTest4.main(DbUtilsTest4.java:21)
String sql = "select * from test";
try {
Context context = new InitialContext();
DataSource datasource= (DataSource)context.lookup("java:/comp/env/dds");
Connection conn = datasource.getConnection();
PreparedStatement pst = conn.prepareStatement(sql);
ResultSet rs =(ResultSet) pst.executeQuery();
while(rs.next()) {
System.out.print("username:"+rs.getString(1)+"\t");
System.out.println("password:"+rs.getString(2));
}
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.lookup(Unknown Source)
at com.lisu.myjdbc.DbUtilsTest4.main(DbUtilsTest4.java:21)
<Context reloadable="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="dds" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="20" maxWait="10000" username="scott" password="tiger"
driverClassName="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@www-f6ac4c1d6dc.:1521:orc10"/>
</Context>麻烦了
而数据源是配置你的中间件的jvm中,两个jvm不是一码事,你在main中new的context肯定找不到了,使用远程方式call吧
错误是JNDI的问题
如果是main的话需要把JNDI相关的包引过来. 你用的什么服务器
JBOSS?WEBSPHERE?如果你用的JBoss的话,把
$jboss_home/client下的lib引到工程下(当然不是全部需要)就可以了.其他服务器的话就去他的lib目录找吧..