ejb开发范例
刚开始学习ejb,依据基本原理编写一个ejb小例子,有想学习ejb的欢迎大家一块学习指导!
my QQ
243067750
1 新建ejb项目
1、Remote(或Local)接口
package com.terry.ejbsample;
import java.rmi.RemoteException;
import javax.ejb.EJBObject;
public interface Hello extends EJBObject {
public String getHello(String s) throws RemoteException;//远程调用的接口方法
}
2、Home(或LocalHome)接口
package com.terry.ejbsample;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface HelloHome extends EJBHome {
Hello create() throws RemoteException, CreateException;
}
3、企业Bean ,具体的业务实现类
package com.terry.ejbsample;
import javax.ejb.CreateException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
public class HelloBean implements SessionBean {
public String getHello(String s) { //具体的业务实现方法
return s;
}
public void ejbCreate() throws CreateException {
System.out.println("Bean created");
}
public void ejbRemove() {
}
public void ejbActivate() {
}
public void ejbPassivate() {
}
public void setSessionContext(SessionContext ctx) {
}
}
编写配置文件(放在ejb项目的meta-inf文件夹下面)
ejb-jar.xml
<?xml version="1.0"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
version="2.1">
<enterprise-beans>
<session>
<ejb-name>HelloName</ejb-name> //ejb名称
<home>com.terry.ejbsample.HelloHome</home> //ejb本地接口类
<remote>com.terry.ejbsample.Hello</remote> //ejb远程接口类
<ejb-class>com.terry.ejbsample.HelloBean</ejb-class> //ejb具体业务实现类
<session-type>Stateful</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
配置文件jboss.xml
<?xml version="1.0"?>
<jboss>
<enterprise-beans>
<session>
<ejb-name>HelloName</ejb-name> //ejb名称
<jndi-name>HelloHome</jndi-name> //JNDI名称
</session>
</enterprise-beans>
</jboss>
打包ejb项目,使用myeclipse打包。生成ejb.jar
编写测试项目:
新建web项目testEJB
测试项目中加入jar。
1 首先把ejb包加入。
原因是:
在生成ejb后应该已经建立了本地接口和远程接口,在部署ejb时websphere或
其他ejb容器会根据这两个接口自动生成本地接口类和远程接口类。 try {
java.util.Properties p = new
java.util.Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
p.put(Context.URL_PKG_PREFIXES,
"jboss.naming:org.jnp.interfaces");
p.put(Context.PROVIDER_URL, "localhost:1099");
Context jndiContext = new InitialContext(p);
Object ref = jndiContext.lookup("HelloHome");
HelloHome home = (HelloHome)
PortableRemoteObject.narrow(ref, HelloHome.class);
Hello hh = home.create();
String s = hh .getHello("springking你真棒");
System.out.println("ejb " + s);
} catch (ClassCastException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (CreateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}