以weblogic为服务器开发会话EJB
时间:2010-12-05
开发运行环境:j2eesdk1.4+weblogic8.1
说明:本试验已开发一个会话EJB为例,系统采用的应用服务器为weblogic8.1
1、编写bean代码(代码的目录在c:\ejbhello下)
① 定义Home Interface
EJB容器通过EJB的Home Interface来创建EJB实例,和Remote Interface一样,执行Home Interface的类由EJB生成工具生成。代码如下:
package ejb.hello;
import javax.ejb.*;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.*;
/**
*只定义create方法
*/
public interface HelloHome extends EJBHome {
public Hello create() throws CreateException,
RemoteException;
}
②定义EJB远程接口(Remote Interface)
任何一个EJB都是通过Remote Interface被调用,首先要在Remote Interface中定义这个EJB可以被外界调用的所有方法。执行Remote Interface的类由EJB生成工具生成,试验的代码如下:
package ejb.hello;
import java.rmi.RemoteException;
import java.rmi.Remote;
import javax.ejb.*;
public interface Hello extends EJBObject, Remote {
//定义供远程调用的业务逻辑方法
public String getHello() throws RemoteException;
public String getStr() throws RemoteException;
}
③ EJB类的实现
在EJB类中,必须给出在Remote Interface中定义的远程方法的具体实现。EJB类中还包括一些EJB规范中定义的必须实现的方法,这些方法都有比较统一的实现模版,只需花费精力在具体业务方法的实现上。试验的代码如下:
package ejb.hello;
import javax.ejb.*;
import java.util.*;
import java.rmi.*;
//类的实现
public class HelloBean implements SessionBean {
static final boolean verbose = true;
private SessionContext ctx;
// Implement the methods in the SessionBean
// interface
public void ejbActivate() {
if (verbose)
System.out.println("ejbActivate called");
}
public void ejbRemove() {
if (verbose)
System.out.println("ejbRemove called");
}
public void ejbPassivate() {
if (verbose)
System.out.println("ejbPassivate called");
}
//Sets the session context.
public void setSessionContext(SessionContext ctx) {
if (verbose)
System.out.println("setSessionContext called");
this.ctx = ctx;
}
/**
* This method corresponds to the create method in
* the home interface HelloHome.java.
* The parameter sets of the two methods are
* identical. When the client calls
* HelloHome.create(), the container allocates an
* instance of the EJBean and calls ejbCreate().
*/
public void ejbCreate () {
if (verbose)
System.out.println("ejbCreate called");
}
//以下业务逻辑的实现
public String getStr()
throws RemoteException
{
return("...My First EJB Test??Lenper_xie...!");
}
}
以weblogic为服务器开发会话EJB(2)
时间:2010-12-05
④会话Bean的代码完成后,编写客户端,代码如下:
package ejb.hello;
import javax.naming.Context;
import javax.naming.InitialContext;
import java.util.Hashtable;
import javax.ejb.*;
import java.rmi.RemoteException;
/**
*用weblogic
*/
public class HelloClient{
public static void main(String args[]){
String url = "t3://localhost:7001";
Context initCtx = null;
HelloHome hellohome = null;
try{
Hashtable env = new Hashtable();
|