帮我看看这两种运行方式有什么不同

yingShisscWang yingShisscWang 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我在tomcat里配了一个数据库连接池,我用两种方式去调用下面这段代码。第一种,我直接用main方法调用,第二种我在jsp
页面里面调用<%out.println(GetConnectionTest.show()%>。第二种成功了,但是第一种却显示没有找到源,下面是代码和错误信息:




package test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

public class GetConnectionTest {
public static void main(String[] args) {
GetConnectionTest.show();
}

public static String show(){
InitialContext ctx;
PreparedStatement pstmt = null;
Connection conn = null;
String sql = "select * from user";
String show = null;
try {
ctx = new InitialContext();
/*
* 在下面的字符串"java:comp/env/jdbc/course"中,*"java:comp/env/"是不变的,
* 而"jdbc/course"大家应该还记得自己之前起的数据源名称吧!
*/
//DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/TestDB");
Context context = (Context)ctx.lookup("java:comp/env/");
DataSource ds = (DataSource)context.lookup("jdbc/TestDB");
conn = ds.getConnection();
System.out.println("got conn");
pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
rs.last();
System.out.println("row:" + rs.getRow());
rs.first();
show = rs.getString(2) +"||" +rs.getInt(3);

} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return show;
}
}




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 test.GetConnectionTest.show(GetConnectionTest.java:30)
at test.GetConnectionTest.main(GetConnectionTest.java:14)
...全文
评论 1
收藏 已收藏
分享
返回顶部
yingShisscWang
Web 开发 81,108 成员 341,721 内容