在client端使用jndi

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

假定在A机器(设IP为192.168.1.22)上部置EJB(ejb容器为JBOSS),其上有一无状态SessionBean First,First有一个方法 public java.lang.String sayHello( java.lang.String name ),First对应的jndi-name为"First".

在B机器上调用First的sayHello方法:

package test;

import java.rmi.RemoteException;

import java.util.Date;

import java.util.Hashtable;

import javax.ejb.CreateException;

import javax.naming.InitialContext;

import javax.naming.NamingException;

/**

* @author <a href="starfire'mailto:zzzhc0508@hotmail.com">starfire </a>

*

*/

public class TestFirst {

private test.FirstHome getHome() throws NamingException {

//First为jndi-name

return (test.FirstHome) getContext().lookup("First");

}

private InitialContext getContext() throws NamingException {

Hashtable props = new Hashtable();

//不同容器的INITIAL_CONTEXT_FACTORY,PROVIDER_URL可能不一样

props.put(InitialContext.INITIAL_CONTEXT_FACTORY,

"org.jnp.interfaces.NamingContextFactory");

props.put(InitialContext.PROVIDER_URL, "jnp://192.168.1.22:1099");

InitialContext initialContext = new InitialContext(props);

return initialContext;

}

public void testBean() {

try {

InitialContext context = getContext();

//context.rebind("obj", new Date());

//Object obj = context.lookup("obj");

//System.out.println(obj);

test.First myBean = getHome().create();

//--------------------------------------

//This is the place you make your calls.

System.out.println(myBean.sayHello("hc"));

} catch (RemoteException e) {

e.printStackTrace();

} catch (CreateException e) {

e.printStackTrace();

} catch (NamingException e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

TestFirst test = new TestFirst();

test.testBean();

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航