JavaServer Faces ユーザーズガイド
目次 前ページ次ページ

第6章 Apcoordinatorの各機能の利用方法

6.3 EJBやWebサービスの呼び出し機能

リモート共通インタフェースを利用することで、Apcoordinatorを利用して開発したEJB/Webサービスや、一般的なEJB/Webサービスを同じインタフェースで呼び出すことが可能です。リモート共通インタフェースの詳細はApcoordinatorユーザーズガイドを参照してください。

JavaServer Facesアプリケーションでリモート共通インタフェースを利用するためには、com.fujitsu.uji.ext.InitialCallFactoryクラスを利用してCallFactoryオブジェクトを取得してください。

import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
import com.fujitsu.uji.ext.Call;
import com.fujitsu.uji.ext.CallFactory;
import com.fujitsu.uji.ext.InitialCallFactory;
import com.fujitsu.uji.ResponseBean;

public class MyBean {
  public String doAction(){
    ...
    try{
      FacesContext fc = FacesContext.getCurrentInstance();
      ExternalContext ec = fc.getExternalContext();
      ServletContext sc = (ServletContext)ec.getContext();
      CallFactory factory = (CallFactory)InitialCallFactory.createFactory(sc, this.getClass().getClassLoader());
      Call call = factory.createCall("myejb");
      ResponseBean responseBean = (ResponseBean)call.invoke(dataBean, "verb");
    } catch(Throwable e){
      ...
    }
      ...
  }
}
ポイント
リモート共通インタフェースは、com.fujitsu.uji.DataBeanを継承したBean(以降、データBeanと呼びます)を引数としてEJBやWebサービスを呼び出します。そのため、リモート共通インタフェースを利用する場合は、managed beanをデータBeanとして作成しておくと便利です。

目次 前ページ次ページ

All Rights Reserved, Copyright © 富士通株式会社 2005