EJB轻松进阶(3)
第三步 编写EJB代码
由前述的目录结构可知,EJB代码包括三个Java文件。
1、Security.java是一个接口,它定义了基本的加密、解密调用接口。注重,由于Security接口可生成EJB对象,所以它必须继续自EJBObject接口。其源代码如下:
文件“Security.java”
package securitybeans;
import java.rmi.RemoteException;
import javax.ejb.EJBObject;
public interface Security extends EJBObject
{
public String encrypt( String strSource ) throws RemoteException;
public String decrypt( String strTarget ) throws RemoteException;
}/* Security */
2、SecurityHome接口可生成EJBHome对象,它负责直接与客户打交道,接收客户的请求,返回处理结果。在EJB规范中,SecurityHome必须继续自EJBHome接口。其源代码如下:
文件“SecurityHome.java”
package securitybeans;
import java.rmi.RemoteException;
import javax.ejb.EJBHome;
import javax.ejb.CreateException;
public interface SecurityHome extends EJBHome
{
Security create() throws CreateException, RemoteException;
}/* EJBHome */
3、SecurityBean类才是真正做“正事”的类,它负责对SecurityHome对象传来的字符串执行加密、解密算法,将得到的结果返回给SecurityHome对象。它是一个Stateless SessionBean,按照EJB规范,必须实现SessionBean接口。其源代码如下:
文件“ScurityBean.java”
package securitybeans;
import java.rmi.RemoteException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
public class SecurityBean implements SessionBean
{
public String encrypt( String strSource )
{
String strTarget = "";
for ( int i = strSource.length() - 1; i >= 0; i -- )
{
strTarget += strSource.charAt( i );
}//for
return strTarget;
}//encrypt()
public String decrypt( String strTarget )
{
String strSource = "";
for ( int i = strTarget.length() - 1; i >= 0; i -- )
{
strSource += strTarget.charAt( i );
}//for
return strSource;
}//decrypt()
public void ejbActivate() {}//ejbActivate()
public void ejbRemove() {}//ejbRemove()
public void ejbPassivate() {}//ejbPassivate()
public void setSessionContext( SessionContext sc ) {}//setSessionContext()