我们做一个系统,在别人的电脑上都配好了,可以在页面上显示数据库中的内容,打在我的电脑上却无法在页面上显示,tomcat上显示的错误是:
get connection??? init ctx
javax.naming.NameNotFoundException: Name java:comp is not bound in this Context
相应错误处的代码
            System.out.println("get connection??? init ctx");
            ds = (DataSource) ctx.lookup("java:comp/env/jdbc/stock");
            System.out.println("get connection??? init ctx and get ds---dbconnection is finish");如果我要在页面插入数据到数据库中也不成功,tomcat显示的问题是:java.lang.NullPointerException
        at com.stock.Dao.dbconnection.DBConnection.getConnection(DBConnection.ja
va:42)在别人电脑上一切ok,请教各位是怎么一回事?怎么解决呀?

解决方案 »

  1.   

    你没有配置数据源阿,所以获取ds = (DataSource) ctx.lookup("java:comp/env/jdbc/stock");
    的时候就会出错
    javax.naming.NameNotFoundException的意思是找不到相应的jndi名称
      

  2.   

    我在tomcat理赔了数据源的jdbc/dbnamejdbc:mysql://localhost:3306/dbname?useUnicode=true;characterEncoding=gbk
    com.mysql.jdbc.Driver
    应该没有错吧
      

  3.   

    ds = (DataSource) ctx.lookup("java:comp/env/jdbc/stock");
    jdbc/stock==jdbc/dbname?
    肯定找不到拉
      

  4.   

    sorry,我在这里用dbname表示了自己的数据库名stock。是不是有其他的问题?
      

  5.   

    想了一下,你看看用jdbc/stock直接连接试一下,好像前面那部分的需要另外设置
      

  6.   

    InitialContext ctx=new InitialContext();
    Object objRef = ctx.lookup("datasource/test");
    这是我以前写的,你直接连下看行不,前面那个我暂时想不起来
      

  7.   

    谢谢了,我再试一试,另外把我连接数据库的那段代码贴上来,应该是没问题的吧
    public class DBConnection {    private DataSource ds = null;
        public DBConnection() {
            try {
                System.out.println("get connection???");
                InitialContext ctx = new InitialContext();
                System.out.println("get connection??? init ctx");
                ds = (DataSource)ctx.lookup("java:comp/env/jdbc/stock");
                System.out.println("get connection??? init ctx and get ds---dbconnection is finish");
            } catch (Exception e) {
                e.printStackTrace();
            }    }