来帮我看看这个简单的远程客户端调用EJB出错的例子,谢谢了

04-01-25 henry.t

我的服务器机器上已经部署好了EJB了,并且本地JSP调用成功,没有问题.现在我用另一台机子远程调用这个EJB,编译通过,运行出错,报异常,现在给出源代码:

import javax.ejb.*;

import javax.naming.*;

import java.util.*;

import henryproject2.*;

public class henryclient

{

public static void main(String[] arg)

{

try

{

Properties p = new Properties();

p.put("javax.naming.factory.initial","weblogic.jndi.WLinitialContextFactory");

p.put("javax.naming.provider.url","t3://192.168.0.2:7001");

Context ctx = new InitialContext(p);

henrysbeanHome home = (henrysbeanHome)javax.rmi.PortableRemoteObject.narrow(ctx.lookup("henrysbean"),henrysbeanHome.class);

henrysbean mybean = home.create();

int id = 1;

henry person = mybean.getperson(id);

System.out.println(person.getid());

System.out.println(person.getname());

}

catch(Exception e)

{

System.out.println(e);

}

}

}

注意:上面的CONTEXT参数是参照JSP调用时的参数,只是IP地址有变.

抛出的异常:

javax.naming.noinitialcontextException:你应该给出CLASS NAME在系统环境中或者系统变量中……,

我到服务器上做了一个一样的客户端模拟远程调用,结果一摸一样,就清马上告诉我怎么做????????????如果比较简单,情给出完整过程

henry.t
2004-01-26 22:45

我输入执行命令 java henryclient 以后错误如下

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

上面就是全部了

还有,我的EJB方面应该是没有问题,原因有2:1,我的EJB远程接口是好了的,我用本地JSP调用远程接口没有错误。2,就算我把EJB那台电脑关了,或者开着,上面的错误都一样,我认为EJB绝对没有问题。情告诉我怎么解决