这里au申请信用卡的功能,这里我们用ejb远程方法调用来完成。
首先根据配置文件里面的定义
引用
<connector name="EJB_Connector" type="com.xti.messaging.connector.EjbClientConnector">
<property name="URL" value="hosturl1\:22162,hosturl2\:22172" />
<property name="ContextFactory" value="com.ibm.websphere.naming.WsnInitialContextFactory"/>
<property name="JNDI" value="ejb/Gateway" />
<property name="Home" value="com.xxbank.icc.acis.acisgateway.ejb.GatewayHome" />
<property name="Remote" value="com.xxbank.icc.acis.acisgateway.ejb.Gateway" />
</connector>
下面是客户端就是我们前端的实现:
public class EjbServiceLocator{
//根据以下方法我们就可以初始化 GatewayHome, 这是一个EJBHome 接口,我们客户端即JFP可以自己创建一个同包名的接口GatewayHome。
private Object getHomeObject(Properties prp) throws NamingException, ClassNotFoundException {
Context ctx = new InitialContext(prp);//prp 会加载上面这个配置文件,JNDI获取上下文,JNDI的命名和定义在是服务器端。
String strJndiName = prp.getProperty("JNDI");//通过上下文搜索这个EJB的实现对象群。
Object obj = ctx.lookup(strJndiName); //得到对象。
Object ejbHomeObject = PortableRemoteObject.narrow(obj, Class.forName(prp.getProperty("Home")));//初始化EJBHome的实现。
return ejbHomeObject;
}
//有了EJBHome的实现对象后,我们可以调用create 来 初始化 EJB 远程session bean。
private Object retrieveRemoteObject(Properties prp) throws ...Exception{
...
Object ejbHomeObject = getHomeObject(prp);
Method createMethod = ejbHomeObject.getClass().getMethod("create", null);
Object remoteObject = createMethod.invoke(ejbHomeObject, null);//得到远程业务代理类的实现对象。这个实现对象是一个session bean,不过对我们jfp 是黑盒的。
...
return remoteObject;
}
public Object getRemoteObject(Properties prp) throws ...Exception{
...
remoteObject = retrieveRemoteObject(prp);
...
return remoteObject;
}
}
最终在以下客户端类中得到远程session bean的业务方法的返回值序列。
public class EjbClientConnector {
public Object[] sendObjects(String methodName, Object[] objects, Class[] methodParameters) throws ...Exception{
...
remoteObject = serviceLocator.getRemoteObject(this.prp);//远程session bean的实现对象。
...
remoteMethod = Class.forName(this.remote).getMethod(methodName, methodParameters);
remoteMethodResult = remoteMethod.invoke(remoteObject, objects);//调用session bean的业务方法。得到结果。
...
}
}
以下是定义在JFP端的远程home 和远程业务代理类接口。
package com.xxbank.ejb;
import java.rmi.RemoteException;
import java.util.HashMap;
import javax.ejb.EJBObject;
public abstract interface Gateway extends EJBObject
{
public abstract HashMap processApp(HashMap paramHashMap)
throws RemoteException, Exception;
public abstract HashMap getAppStatus(HashMap paramHashMap)
throws RemoteException, Exception;
public abstract void fireEOD(int paramInt1, int paramInt2)
throws RemoteException, Exception;
public abstract HashMap getRecalcResponse(HashMap paramHashMap)
throws Exception;
public abstract HashMap getPResponse(HashMap paramHashMap)
throws Exception;
public abstract HashMap releaseLock(HashMap paramHashMap)
throws Exception;
public abstract void insertDetails(HashMap paramHashMap)
throws Exception;
}
package com.xxbank.ejb;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
public abstract interface GatewayHome extends EJBHome
{
public abstract Gateway create()
throws CreateException, RemoteException;
}
分享到:
相关推荐
EJB应用开发详解
使用oracle的jdeveloper开发的一个EJB应用程序的截图和简述的完整全过程
ejb应用开发详解ejb应用开发详解ejb应用开发详解ejb应用开发详解ejb应用开发详解ejb应用开发详解
实现新用户注册/登录/存钱/取钱/查询余额/修改密码/转帐/退出;超漂亮的界面div+css;值得下载来学习。。。
EJB是JAVA目前主流的应用框架!是一种企业级JAVABEAN
EJB 系统开发实战
EJB简单应用,讲解分布式EJB操作数据库的知识
全书以剖析EJB 2.0的技术核心以及开发与部署的过程为中心,共分3大部分20章,包括无状态会话Bean、有状态会话Bean、CMP实体Bean、EJB QL语言、集成RMI-IIOP与JNDI、应用客户端开发、EJB部署、持久化EJB与CORBA的集成...
ejb3.0写的登陆应用,可以部署到jboss5.1中
使用eclipse通过weblogic开发简单的ejb应用(weblogic 10.x & ejb3.x)
基于Struts+EJB购书系统基于Struts+EJB购书系统基于Struts+EJB购书系统基于Struts+EJB购书系统基于Struts+EJB购书系统
大型银行系统,此系统利用EJB3技术,采用BS架构,采用了STRUTS框架
MyEclipse 6 Java 开发中文教程2011.pdfMyEclipse 6 Java 开发中文教程2011....开发 EJB 应用.pdf第十六章 开发 EJB 应用.pdf第十六章 开发 EJB 应用.pdf第十六章 开发 EJB 应用.pdf第十六章 开发 EJB 应用.pdf
使用eclipse通过jboss开发简单的ejb应用(jboss7.x & ejb3.x),包含server和client。
精心推荐精品,关于开发 EJB 应用的电子书籍,可拷贝其中的代码进行编译调试!
简单的java实现的无状态EJB应用,并在weblogic上发布,包括了调用方式
ejb应用开发详解大全.rar
知识架构 结构图
鉴 于目前许多公司和系统都开始采用 Java 和 EJB 的技术,因此笔者在此野人献 曝,希望以一个简化的范例来说明在开发 EJB 应用系统时会遭遇到的技术问题 以及一些设计上的取舍。当然对于J2EE 有兴趣的读者也可以依据...