0

EJB 2.0 を作成するために必要なコードを次に示します。これを変換して、EJB 3.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);
4

1 に答える 1

0

「EJB3.0インターフェースをEJB2.0JARに追加するにはどうすればよいですか」という意味の場合、EJB3.0はEJB2.0と下位互換性があるため、クライアントまたはBeanを変換する必要はありません。代わりに、ejb-jar.xmlを更新してXSDを削除し、XSD + xmlnsを追加して、のバージョン属性を更新するだけです<ejb-jar/>

「これをアノテーションに変換するにはどうすればよいですか」という意味の場合は@RemoteHome、Beanクラスのアノテーションを使用し、インターフェースを同じに保ちます。

「ホームの代わりにビジネスインターフェイスを使用するようにEJBを変換するにはどうすればよいですか」という意味の場合、ビジネスインターフェイスの種類を事前に知っている必要があるため、直接行うことはできません。

java.lang.Object businessObjectStub = initCtx.lookup(ejbJNDIName);
BusinessObject businessObject = (BusinessObject)
    javax.rmi.PortableRemoteObject.narrow(businessObjectStub, BusinessObject.class);

(一部のアプリケーションサーバーはEJB 3.0にナローを必要としませんが、WebSphere Application Server 7.0は必要です。)

于 2012-10-26T14:11:13.240 に答える