InitialContext();
客户端你不能这样初始化它,你应该加上个方法,比如在你的SERVLET程序里加上:
private Context getInitialContext() throws Exception {
        String url = "t3://localhost:7001";
        String user = null;
        String password = null;
        Properties properties = null;
        try {
            properties = new Properties();
            properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
            properties.put(Context.PROVIDER_URL, url);
            if (user != null) {
                properties.put(Context.SECURITY_PRINCIPAL, user);
                properties.put(Context.SECURITY_CREDENTIALS, password == null ? "" : password);
            }            return new InitialContext(properties);
        }
        catch(Exception e) {
            log("Unable to connect to WebLogic server at " + url);
            log("Please make sure that the server is running.");
            throw e;
        }
    }
用这个方法初始化它。
而且,实际中你应该保证你的相关配置文件为最新的。有些临时文件可以手工删除或者刷新。

解决方案 »

  1.   

    真谢了,我一定给分我的BEAN中没声明角色  是不是
    properties.put(Context.SECURITY_PRINCIPAL, user);
                    
    properties.put(Context.SECURITY_CREDENTIALS,password == null ? "" : password);
    就不要了
    只要Properties p = new Properties();
         p.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.TengahInitialContextFactory");
            
        ctx = new InitialContext(p);
            就够了?
    我现在试试
      

  2.   

    如果你是用Jbuilder开发EJB的话,你可以:
    File → new → Enterprise → EJB Test Client生成一个客户端测试的类,将自动生产一些相关初始化的代码,你仔细看看那些代码。
      

  3.   

    我正好在学J2EE,还没入门呢?前两天也经常遇到这样类似的问题。一般都是以下原因:
    其一:Context并没有初始化,你可以在你的程序里试着打印Context类,就可以看它到底初始化没有。
    其二:找不到你定义的JNDI名称,这样的话出现问题的地方就很多,你需要仔细查看你的配置文件。
    其三:文件并未更新,比如说,你更改了相关设置,但你的EJB没有发布成功,你就以为是JNDI名称设置不正确,你可以手工更新你的EJB文件到WEB服务器,然后删除一些临时生成的文件重启服务再试。
    共同学习!!
      

  4.   

    不行!我加了
    Properties p = new Properties();
    p.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.TengahInitialContextFactory");
    p.put(Context.PROVIDER_URL, "t3://localhost:7001");
    Context ctx=new  InitialContext(p);还是不行
    还是那个错!
    谁还能帮帮我!
      

  5.   

    你的CardTableBean部署成功了吗?
      

  6.   

    天哪,我生成个EJB Test Client,运行一下,还是那个错,原因是
    Failed initializing bean access.可我只是个好简单的BEAN我再看看吧,对了,我的Context打出来是javax.naming.InitialContext@c1d35
    ?这初始化了吗?