Exception in thread "main" 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.food.dao.DAO.getcon(DAO.java:22)
at com.food.entity.TitleDao.getAllFood(TitleDao.java:22)
at com.food.entity.TitleDao.main(TitleDao.java:52)这是什么报错提示啊!!??

解决方案 »

  1.   

    public class NoInitialContextException
    extends NamingException
    当不能创建任何初始上下文实现时,抛出此异常。如何选择初始上下文实现的策略已在 InitialContext 类的文档中描述。 此异常可以在与 InitialContext 进行的任何交互期间抛出,而不仅仅是在构造 InitialContext 时。例如,初始上下文的实现可能仅当在其上调用实际方法时延后 (lazily) 检索上下文。在确定初始上下文的存在时,应用程序不应该对它有任何依赖性。 应用于 NamingException 的同步和序列化问题在这里可以直接应用。 
      

  2.   

    debug跟一下,就知道哪里出错了
      

  3.   

    Exception in thread "main" javax.naming.NoInitialContextException
    调试看看 
      

  4.   

      楼主你用的是JNDI数据连接池吧,你的数据连接池工厂无法初始化.
        由getAllFood()方法引起的.
        我的建议是看一下你的数据连接池配置是否正确!!!
          要么是你配置错了,要么是JAR包有问题.
      

  5.   

    package com.food.dao;
    import  com.food.dao.*;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import a.food;
    import javax.naming.NamingException;/*
     * 使用JNDI祥和数据原需要导入的包
     */
    public class TitleDao extends DAO
    {
          

     public ArrayList getAllFood() throws NamingException
     {

     
     try {
    this.getcon();
          String sql="select * from foodInfo";
         this.mingling=connection.prepareStatement(sql);
      this.results=mingling.executeQuery();
      ArrayList list=new ArrayList();
      while(results.next())
      {
        food f=new food();
            f.setFoodID(results.getInt(1));
         f.setFoodName(results.getString(2));
         f.setRe(results.getString(3));
         f.setFoodPrice(results.getDouble(4));
         f.setDescription(results.getString(5));
         f.setFoodImage(results.getString(6));
         list.add(f);
     }
      this.Close();
      return list;
           } 
            catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    return null;

    }

    }
      
    }
    这是方法!!!