Context ctx=new InitialContext(System.getProperties());这句里面是否需要参数?
还有你把在打印错误的那个地方把异常打印出来,看看事什么错误,到底是那句出了错。

解决方案 »

  1.   

    System.out.println("错误!!"+e.getMessage());打印出详细的错误信息!
      

  2.   

    错误!!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正在删除帐户
    这就是详细的错误信息。。
      

  3.   

    Context ctx=new InitialContext(System.getProperties());这句可能不正确,下面的代码供你参考。
    private static final Hashtable env;    static 
        {
            env = new Hashtable();
            env.put("weblogic.jndi.createIntermediateContexts", "true");
            env.put("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory");
            env.put("java.naming.provider.url", "t3://localhost:7001");
        }
    private static Context getContext()
            throws NamingException
        {
            if(ctx == null)
                ctx = new InitialContext(env);
            return ctx;
        }
      

  4.   

    楼上的兄弟。。还是不行呀出现下面的错误了错误!!java.lang.NullPointerExceptionStart server side stack trace:
    javax.ejb.CreateException: java.lang.NullPointerException at com.ziyang.bmp.AccountBean.ejbCreate(AccountBean.java:53) at com.ziyang.bmp.AccountBean_t4qrab_Impl.ejbCreate(AccountBean_t4qrab_Impl.java:172) at java.lang.reflect.Method.invoke(Native Method) at weblogic.ejb20.manager.DBManager.create(DBManager.java:737) at weblogic.ejb20.manager.DBManager.remoteCreate(DBManager.java:707) at weblogic.ejb20.internal.EntityEJBHome.create(EntityEJBHome.java:250) at com.ziyang.bmp.AccountBean_t4qrab_HomeImpl.create(AccountBean_t4qrab_HomeImpl.java:80) at com.ziyang.bmp.AccountBean_t4qrab_HomeImpl_WLSkel.invoke(Unknown Source) at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:346) at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:114) at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:300) at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:762) at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:295) at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)End  server side stack trace
    正在删除帐户
      

  5.   

    lookup的时候有问题,应该这样:
    Object obj = ctx.lookup("AccountRemoteHome");
    AccountRemoteHome home = (AccountRemoteHome )PortableRemoteObject.narrow(obj, AccountRemoteHome .class);
    home.create(("1","xxxx");
      

  6.   

    Start server side stack trace:
    javax.ejb.CreateException: java.lang.NullPointerException
    数名你的上一个错误已经没有了
    但是ejbCreate方法里肯定出现了一个空指针引用
    如row=null;row.length;
    就会引发如上的NullPointerException
    AccountBean.java:53行
      

  7.   

    在AccountBean中每个方法中都会出现javax.ejb.FinderException: java.lang.NullPointerException
    比如 ejbFindByOwnerName是这样的:
    public Enumeration ejbFindByOwnerName(String name) throws FinderException,RemoteException
        {
            PreparedStatement pstmt=null;
            Connection conn=null;
            Vector v=new Vector();
            try
            {
                conn=getConnection();
                pstmt=conn.prepareStatement("select id from accounts where ownername=?");
                pstmt.setString(1,name);
                ResultSet rs=pstmt.executeQuery();
                while(rs.next())
                {
                    String id=rs.getString("id");
                    v.addElement(new AccountPK(id));
                }
                return v.elements();
            }catch(Exception e)
            {
                throw new FinderException(e.toString());
            }
            finally
            {
                try
                {
                    pstmt.close();            }catch(Exception e){}
                try
                {
                    conn.close();
                }catch(Exception e){}
            }
        }
      

  8.   

    首先确认你的实现EJBObject的接口有没有,然后利用这个接口造型返回对象:
    YouInterface youobj = home.create("1","xxxx");然后才能调用youobj.ejbFindByOwnerName()方法的到你要得数据。