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这个指的是javax.naming这个包没有实际的导入进来,还是说JNDI的问题?

解决方案 »

  1.   

    可以确定出错的是这句:Object objref = initial.lookup("java:comp/env/ejb/SimpleEStore");但不知道是什么原因
      

  2.   

    直接用JNDI名
    SimpleEStore或ejb/SimpleEStore
      

  3.   

    楼上的请说明白些
    是这个意思吗?Object objref = initial.lookup("ejb/SimpleEStore");?
      

  4.   

    我在deploy时已经在EStoreClient->ejb ref's->Coded name设定ejb/SimpleEstore,
    同时JNDI name设定EStoreBean.
      

  5.   

    呵呵 你没有在web.xml里配你的ejb的引用作为一个运行上下文变量 然后你的程序里面用的lookup里的参数又是从运行上下文环境里去找那个变量 当然找不到了!  实际你也不用管web.xml了 直接Object objref = initial.lookup("你的ejb的部署描述器里的jndi名"); 就可以了
      

  6.   

    Object objref = initial.lookup("java:comp/env/ejb/SimpleEStore");
    其实你参考下JB做的客户端代码,initial.lookup()里的参数是你的EJB名字
      

  7.   

    你先用JB做个会话BEAN,在用JB做个客户端程序,你在参考下JB做的客户端代码,你就会发现initial.lookup()里的参数是你的EJB名字