以下是创建EJB2.0所需的代码,如何将其转换为可用于EJB3.0
java.lang.Object ejbHomeStub = initCtx.lookup(ejbJNDIName);
EJBHome ejbHome = (EJBHome)
javax.rmi.PortableRemoteObject.narrow(ejbHomeStub, EJBHome.class);
EJBMetaData ejbMetaData = ejbHome.getEJBMetaData();
Class ejbHomeClass = ejbMetaData.getHomeInterfaceClass();
//get ejb object of home interface type
ejbHome = (EJBHome) javax.rmi.PortableRemoteObject.narrow(ejbHome, ejbHomeClass);
//create ejb remote object
Method ejbMethodCreate = ejbHomeClass.getDeclaredMethod(EJB_CREATE, null);
ejbRemoteObj = (EJBObject) ejbMethodCreate.invoke(ejbHome, null);发布于 2012-10-26 22:11:13
如果您的意思是“如何将EJB3.0接口添加到EJB2.0JAR中”,那么您不需要转换客户端或bean,因为EJB3.0向后兼容EJB2.0。相反,只需更新ejb-jar.xml以删除XSD,添加XSD+xmlns,并更新<ejb-jar/>的版本属性。
如果您的意思是“如何将其转换为注释”,那么在bean类上使用@RemoteHome注释,并保持您的接口不变。
如果您的意思是“如何将EJB转换为使用业务接口而不是homes",那么您不能直接这样做,因为您必须事先知道业务接口的类型:
java.lang.Object businessObjectStub = initCtx.lookup(ejbJNDIName);
BusinessObject businessObject = (BusinessObject)
javax.rmi.PortableRemoteObject.narrow(businessObjectStub, BusinessObject.class);(有些应用程序服务器不需要EJB3.0的窄应用程序,但WebSphere应用程序服务器7.0需要。)
https://stackoverflow.com/questions/13076921
复制相似问题