1.创建一个ejb项目名称为ejb2_1,选择j2ee1.4支持ejb2.x
2.创建一个远程接口
[color=darkred] package com.qxm.ejb2;
import java.rmi.RemoteException;
import javax.ejb.EJBObject;
public interface MyRemote extends EJBObject {
public void printValue()throws RemoteException;
}[/color]
3.创建一个home接口
[color=darkred]package com.qxm.ejb2;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface MyHome extends EJBHome {
public MyRemote create() throws RemoteException,CreateException;
}[/color]4.创建一个stateless的SessionBean
[color=darkred]package com.qxm.ejb2;
import java.rmi.RemoteException;
import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
public class MyFirstEjbBean implements SessionBean {
private static final long serialVersionUID = 1L;
@SuppressWarnings("unused")
private SessionContext context;
public void setContext(SessionContext context) {
this.context = context;
}
public void ejbCreate() throws EJBException, RemoteException {}
public void ejbActivate() throws EJBException, RemoteException {
}
public void ejbPassivate() throws EJBException, RemoteException {
}
public void ejbRemove() throws EJBException, RemoteException {
}
public void setSessionContext(SessionContext arg0) throws EJBException,
RemoteException {
}
/**
* 这个是ejb对象的实现方法
*/
public void printValue(){
System.out.println("连接成功");
}
}
[/color]
配置文件
文件ejb-jar.xml
[color=green]<?xml version="1.0" encoding="UTF-8"?>
<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>MyRemote</ejb-name>
<home>com.qxm.ejb2.MyHome</home>
<remote>com.qxm.ejb2.MyRemote</remote>
<ejb-class>com.qxm.ejb2.MyFirstEjbBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>[/color]
[color=green]jboss.xml
_______________________________
<?xml version="1.0"?>
<jboss>
<enterprise-beans>
<session>
<ejb-name>MyRemote</ejb-name>
<jndi-name>MyHome</jndi-name>
</session>
</enterprise-beans>
</jboss>[/color]
5客户端的实现
创建一个ejb项目名称为ejb2_1_cilent
[color=darkred]package com.qxm.cilent;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import com.qxm.ejb2.MyHome;
import com.qxm.ejb2.MyRemote;
public class TestCilent {
public static void main(String[] args)throws Exception{
java.util.Properties props = new java.util.Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
//props.put(Context.URL_PKG_PREFIXES, "jboss.naming:org.jnp.interfaces");
props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming");
props.put(Context.PROVIDER_URL, "localhost:1099");
props.put("java.naming.rmi.security.manager", "yes");
InitialContext context = new InitialContext(props);
Object obj = context.lookup("MyHome");
MyHome home = (MyHome)PortableRemoteObject.narrow(obj, MyHome.class);
MyRemote remote = home.create();
remote.printValue();
}
}[/color]
6.将ejb2_1中的home接口文件和配置问件打包为jar文件 或者将整个项目打包为jar文件,还有一种在开发时比较简便的方法 就时将ejb2_1引入到ejb客户端中,这样做的话可以在开发中节省大量的时间,由于我开发ejb所用的服务器时Jboss4.2.2GA所以找到你电脑硬盘上的安装目录,我的安装路径在G盘所以将G:\jboss-4.2.2.GA\clientx下的jar包BuildPath到你的ejb_cilent中在myeclipse中配置哈皮Jboss就OK了,Jboss的配置方法被myeclipse集成的很好,配置方法类似于tomcat,这里就不多说了
2.创建一个远程接口
[color=darkred] package com.qxm.ejb2;
import java.rmi.RemoteException;
import javax.ejb.EJBObject;
public interface MyRemote extends EJBObject {
public void printValue()throws RemoteException;
}[/color]
3.创建一个home接口
[color=darkred]package com.qxm.ejb2;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface MyHome extends EJBHome {
public MyRemote create() throws RemoteException,CreateException;
}[/color]4.创建一个stateless的SessionBean
[color=darkred]package com.qxm.ejb2;
import java.rmi.RemoteException;
import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
public class MyFirstEjbBean implements SessionBean {
private static final long serialVersionUID = 1L;
@SuppressWarnings("unused")
private SessionContext context;
public void setContext(SessionContext context) {
this.context = context;
}
public void ejbCreate() throws EJBException, RemoteException {}
public void ejbActivate() throws EJBException, RemoteException {
}
public void ejbPassivate() throws EJBException, RemoteException {
}
public void ejbRemove() throws EJBException, RemoteException {
}
public void setSessionContext(SessionContext arg0) throws EJBException,
RemoteException {
}
/**
* 这个是ejb对象的实现方法
*/
public void printValue(){
System.out.println("连接成功");
}
}
[/color]
配置文件
文件ejb-jar.xml
[color=green]<?xml version="1.0" encoding="UTF-8"?>
<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>MyRemote</ejb-name>
<home>com.qxm.ejb2.MyHome</home>
<remote>com.qxm.ejb2.MyRemote</remote>
<ejb-class>com.qxm.ejb2.MyFirstEjbBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>[/color]
[color=green]jboss.xml
_______________________________
<?xml version="1.0"?>
<jboss>
<enterprise-beans>
<session>
<ejb-name>MyRemote</ejb-name>
<jndi-name>MyHome</jndi-name>
</session>
</enterprise-beans>
</jboss>[/color]
5客户端的实现
创建一个ejb项目名称为ejb2_1_cilent
[color=darkred]package com.qxm.cilent;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import com.qxm.ejb2.MyHome;
import com.qxm.ejb2.MyRemote;
public class TestCilent {
public static void main(String[] args)throws Exception{
java.util.Properties props = new java.util.Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
//props.put(Context.URL_PKG_PREFIXES, "jboss.naming:org.jnp.interfaces");
props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming");
props.put(Context.PROVIDER_URL, "localhost:1099");
props.put("java.naming.rmi.security.manager", "yes");
InitialContext context = new InitialContext(props);
Object obj = context.lookup("MyHome");
MyHome home = (MyHome)PortableRemoteObject.narrow(obj, MyHome.class);
MyRemote remote = home.create();
remote.printValue();
}
}[/color]
6.将ejb2_1中的home接口文件和配置问件打包为jar文件 或者将整个项目打包为jar文件,还有一种在开发时比较简便的方法 就时将ejb2_1引入到ejb客户端中,这样做的话可以在开发中节省大量的时间,由于我开发ejb所用的服务器时Jboss4.2.2GA所以找到你电脑硬盘上的安装目录,我的安装路径在G盘所以将G:\jboss-4.2.2.GA\clientx下的jar包BuildPath到你的ejb_cilent中在myeclipse中配置哈皮Jboss就OK了,Jboss的配置方法被myeclipse集成的很好,配置方法类似于tomcat,这里就不多说了