当前位置: 技术问答>java相关
关于j2ee的一个菜鸟极问题
来源: 互联网 发布时间:2015-03-11
本文导语: 这些天我开始学习j2ee构架规范,看了几个实例后有一个问题很疑惑,那就是j2ee的客户程序是怎么找到j2ee服务器的去调用远程的ejb的?我看的是从sun公司网站上下载的《j2eetutorial》里的两个例子,我没有发现任何有关...
这些天我开始学习j2ee构架规范,看了几个实例后有一个问题很疑惑,那就是j2ee的客户程序是怎么找到j2ee服务器的去调用远程的ejb的?我看的是从sun公司网站上下载的《j2eetutorial》里的两个例子,我没有发现任何有关机器名,ip地址的东东,请教各位j2ee大侠,j2ee的客户程序是通过什么途径找到服务器的?谢谢!
|
这个在不同的J2EE服务器上是不一样的,楼上说的是金蝶那个吧,但是其它的,
比如
j2ee1.3是:
Context initial = new javax.naming.InitialContext();
Object objref = initial.lookup("java:comp/env/myBean");
home = (ArticleHome)PortableRemoteObject.narrow(objref,ArticleHome.class);
但在weblogic下这样得到context:
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
h.put(Context.PROVIDER_URL, "t3://localhost:7001");
return new InitialContext(p);
|
j2ee使用jndi来通讯,对ejb的调用是基于rmi-iiop的,当deploy ejb时,deploy tool会生成本地的stub,由它和服务器端的skeleton 通讯,当然如果你做sun的例子,stub和skeleton就都在本地的PC上了.
|
env.putContext.INITIAL_CONTEXT_FACTORY,"com.apusic.jndi.InitialContextFactory");
env.put(Context.PROVIDER_URL,"rmi://127.0.0.1:6888");
env.put(Context.SECURITY_CREDENTIALS,"user");
env.put(Context.SECURITY_PRINCIPAL,"password");
initial=new InitialContext(env);
&
java -Dorg.omg.CORBA.ORBInitialHost=buzz -classpath "$CPATH"
ConverterClient
SUN的有默认缺省端口,如果在环境变量中或程序中没有指定地址,默认是local
env.put(Context.PROVIDER_URL,"rmi://127.0.0.1:6888");
env.put(Context.SECURITY_CREDENTIALS,"user");
env.put(Context.SECURITY_PRINCIPAL,"password");
initial=new InitialContext(env);
&
java -Dorg.omg.CORBA.ORBInitialHost=buzz -classpath "$CPATH"
ConverterClient
SUN的有默认缺省端口,如果在环境变量中或程序中没有指定地址,默认是local
|
去问zhipop(J2EEfans),他好像有点研究