SessionBeanの作成

さて、ここまで作成したEntityBeanを使って、挨拶を返すHelloWorldクラスをSessionBeanとして作成します。作成方法は http://www.atmarkit.co.jp/fjava/rensai2/eclipse2_04/eclipse04_2.html のとおりです。ただし、今回はEntituBean「HelloTo」を使うため、クラスレベルのXdocletコメントに以下を追加します。

 * @ejb.ejb-ref
 *  ejb-name="HelloTo" 

SessionBeanのリモートメソッドを実装します。EntityBeanにはローカルでアクセスするようにします。

	public String sayHello(String nickName) {
		try {
			HelloToLocalHome home = HelloToUtil.getLocalHome();
			HelloToLocal helloTo = home.findByPrimaryKey(nickName);
			String fullName = helloTo.getFullName();
			return "Hello " + fullName + " from Stateless Session Bean"; 
		} catch (FinderException e) {
			return "Couldn't find anyone who has such nickname...";
		} catch (NamingException e) {
			e.printStackTrace();
			throw new EJBException(e);
		}
	}

SessionBeanのコード全体は以下のようになります。

package hello;
import javax.ejb.EJBException;
import javax.ejb.FinderException;
import javax.ejb.SessionBean;
import javax.naming.NamingException;

/**
 * @ejb.bean name="HelloWorldSessionBean"
 *	jndi-name="HelloWorld"
 *	type="Stateless" 
 **/
public abstract class HelloWorld implements SessionBean {

	/**
	 * @ejb.interface-method
	 *	view-type="remote" 
	 *
	**/
	public String sayHello(String nickName) {
		try {
			HelloToLocalHome home = HelloToUtil.getLocalHome();
			HelloToLocal helloTo = home.findByPrimaryKey(nickName);
			String fullName = helloTo.getFullName();
			return "Hello " + fullName + " from Stateless Session Bean"; 
		} catch (FinderException e) {
			return "Couldn't find anyone who has such nickname...";
		} catch (NamingException e) {
			e.printStackTrace();
			throw new EJBException(e);
		}
	}
}

これもAdd EJB to module、Generate EJB Classesと