Topic: j2ee应用程序客户端怎样在远程与服务器通信? |
Print this page |
1.j2ee应用程序客户端怎样在远程与服务器通信? | Copy to clipboard |
Posted by: sharinglife Posted on: 2003-05-16 10:13 我用的j2ee服务器是sun公司的j2sdkee1.3,完全为了学习之用。在服务器端,部署了一个EJB,而且用了一个客户端应用程序,用来访问Ejb,名字为countClient.jar,其jar包中的主类名是CountClient,如果在同一台机器上运行,使用命令 runclient.bat -client countClient.jar -name CountClient 是没有问题的,我想知道的是如果客户端应用程序与j2ee服务器不在同一台机器上,该怎么进行访问呢?是否要通过服务器的ip:port,格式又是怎么样的呢?在客户端除了需要这个客户端应用程序之外,还需要哪些辅助模块呢? 请斑竹和对这个了解的朋友不吝赐教,小弟多谢多谢:) |
2.Re:j2ee应用程序客户端怎样在远程与服务器通信? [Re: sharinglife] | Copy to clipboard |
Posted by: lihongtao Posted on: 2003-05-16 10:40 J2ee的Client可以是Java application\applet,但是应用最多的还是浏览器。访问j2ee组件只能通过jndi: Properties props = System.getProperties(); //获得Context Context ctx = new InitialContext(props); //从jndi中查找CountHome Object obj = ctx.lookup("CountHome"); //获得CountHome引用 CountHome countHome = (CountHome)javax.rmi.PortableRemoteObject.narrow(obj, CountHome.class); //获得Coun引用 Count count = countHome.create(); |
3.Re:j2ee应用程序客户端怎样在远程与服务器通信? [Re: sharinglife] | Copy to clipboard |
Posted by: sharinglife Posted on: 2003-05-16 11:19 首先感谢这位老兄的热心回答,我的CountClient.java文件开头是这样的: public class CountClient { public static void main(String[] args) { try { InitialContext ctx = new InitialContext(); CountHome home = (CountHome) javax.rmi.PortableRemoteObject.narrow( ctx.lookup("CountHome"), CountHome.class); .................................................. 我不知道你写的这句Properties props = System.getProperties(); //获得Context, 怎样能获得远程服务器的上下文, 我要做的工作是从远程利用客户端应用程序访问j2ee服务器中的Ejb组建。 |
4.Re:j2ee应用程序客户端怎样在远程与服务器通信? [Re: sharinglife] | Copy to clipboard |
Posted by: jeez Posted on: 2003-05-16 13:42 运行环境中需要有jndi的环境变量,你可以将它们写入一个文件,如jndi.properties。 内容: //主机ip和端口号 java.naming.provider.url=rmi://localhost:1099/JndiServer //factory须替换成你的jndi服务提供商的相应类名 java.naming.factory.initial=org.exolab.jms.jndi.rmi.RmiJndiInitialContextFactory 以下是初始化JndiProperties的程序: private void initJndiProps() { //init jndi properties URL jndiPropUrl = new File("/config/jndiProperties").toURL(); if (jndiPropUrl == null) { return; } //load props from file Properties props = null; try { InputStream is = jndiPropUrl.openStream(); props = new Properties(); props.load(is); } catch (IOException ex) { } //log props into the log Enumeration keys = props.propertyNames(); while (keys.hasMoreElements()) { String key = (String) keys.nextElement(); String value = props.getProperty(key); System.setProperty(key, value); } } |
5.Re:j2ee应用程序客户端怎样在远程与服务器通信? [Re: sharinglife] | Copy to clipboard |
Posted by: sharinglife Posted on: 2003-05-16 20:24 多谢了,兄台,虽然看得不太明白^-^,下来慢慢研究! |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |