下一页 1 2 3
创建无状态的Session Bean 在HelloWorldSession的例子中,该bean在方法调用之间仍记得一个问候的字符串。例如,你调用setGreeting来修改欢迎词,当你调用getGreeting时,该session会记得保存的欢迎词。 列表6.5“Hello World”session bean Remote 接口(无状态版本) Listing 6.5 Source Code for StatelessHello.java import java.rmi.*; /** Defines the methods you can call on a StatelessHello object */ public interface StatelessHello extends EJBObject /** Returns a greeting for the named object */ } 在这个例子中,Remote接口仅提供了一个greet方法,该方法接收一个参数并且返回一个欢迎词。例如,如果传送“World”参数给greet,greet方法将返回“Hello World!”。 列表6.6展示了StatelessHello bean的Home接口。 Listing 6.6 Source Code for StatelessHelloHome.java import java.rmi.*; /** Defines the methods for creating a StatelessHelloWorld */ public interface StatelessHelloHome extends EJBHome /** Creates a StatelessHello session bean. A stateless session bean }
从编程的角度看,创建无状态的Session Bean和创建有状态的是一样简单的。除了在配置工具里修改一个设置外,仅有的一点不同是在bean的初始设计阶段,无状态的Session Bean并不记得方法调用之间的任何东西,bean需要的任何消息都必须由客户端获得。虽然无状态的Session Bean并不记得面向session的数据,不过可以在一个无状态的session bean中存放数据,只是不能存放与客户端相关的数据。
package usingj2ee.hello;
import javax.ejb.*;
{
public String greet(String thingToGreet) throws RemoteException;
package usingj2ee.hello;
import javax.ejb.*;
{
can't have a create method that takes parameters. */
public StatelessHello create() throws RemoteException, CreateException;