JESSIEfoo 2009-04-03
前提:服务器端EAR包发布正确,必要的接口类已经被导出.
客户端设置:假设客户端为一个web应用,名称为test。
在WEB-INF里面的"ibm-web-bnd.xmi"里面增加如下代码:
<ejbRefBindings xmi:id="EnterpriseBeanBinding_1238728565453" jndiName="ejb/com/ncut/salab/epc/queryservice/SubscribeHome"> <bindingEjbRef href="WEB-INF/web.xml#EjbRef_1237982284250" /> </ejbRefBindings>
其中“EnterpriseBeanBinding_1238728565453”,是需要在client 应用里面使用的EJB,具体信息能够在服务器端的ejb-jar.xml找到,copy过来就可以了。
然后再web.xml里面添加:
<ejb-ref id="EjbRef_1237982284250"> <ejb-ref-name>ejb/Subscribe</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <home>com.ncut.salab.epc.queryservice.SubscribeHome</home> <remote>com.ncut.salab.epc.queryservice.Subscribe</remote> </ejb-ref>
这个的意思是添加一个ejb引用。注意这里面的id要和上面的<bindingEjbRef/>里面的一致。
访问代码如下:
Context ic = new InitialContext(); Object obj = ic.lookup("java:comp/env/ejb/Subscribe"); SubscribeHome home = (SubscribeHome)PortableRemoteObject.narrow(obj, SubscribeHome.class); Subscribe subscriber = home.create(); if(subscriber != null){ System.out.println("JNID find successfully !!"); }
如果客户端和服务器端都部署在一个JVM里面的话,context用默认的就可以,否则的话需要使用相应服务器的参数设置context。