EJB开发实例:jboss3.2.6
加入%JBOSS%/client/jbossall-client.jar包,编译如下文件.
1.创建EJBHome
/*
* Created on 2005-10-8
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package net.angwin.ejb;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
/**
* @author rt
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public interface HelloHome extends EJBHome {
Hello create() throws java.rmi.RemoteException, CreateException;
}
2.创建EJBObject
/*
* Created on 2005-10-8
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package net.angwin.ejb;
import javax.ejb.EJBObject;
/**
* @author rt
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public interface Hello extends EJBObject {
public String getHello() throws java.rmi.RemoteException;
}
3.创建SessionBean
/*
* Created on 2005-10-8
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package net.angwin.ejb;
import java.rmi.RemoteException;
import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
/**
* @author rt
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class HelloEJB implements SessionBean {
/**
* Comment for <code>serialVersionUID</code>
*/
private static final long serialVersionUID = 1L;
/* (non-Javadoc)
* @see javax.ejb.SessionBean#setSessionContext(javax.ejb.SessionContext)
*/
public void setSessionContext(SessionContext arg0) throws EJBException,
RemoteException {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see javax.ejb.SessionBean#ejbRemove()
*/
public void ejbRemove() throws EJBException, RemoteException {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see javax.ejb.SessionBean#ejbActivate()
*/
public void ejbActivate() throws EJBException, RemoteException {
// TODO Auto-generated method stub
}
/* (non-Javadoc)
* @see javax.ejb.SessionBean#ejbPassivate()
*/
public void ejbPassivate() throws EJBException, RemoteException {
// TODO Auto-generated method stub
}
public void ejbCreate(){}
public String getHello(){
return "Hello, EJB!";
}
}
3.编写ejb-jar文件
<ejb-jar>
<description>
This is Hello EJB example
</description>
<display-name>HelloBean</display-name>
<enterprise-beans>
<session>
<display-name>Hello</display-name>
<ejb-name>Hello</ejb-name>
<home>net.angwin.ejb.HelloHome</home>
<remote>net.angwin.ejb.Hello</remote>
<ejb-class>net.angwin.ejb.HelloEJB</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
4.打包
将ejb-jar.xml放入META-INF目录下,并将生成的class文件与META-INF置于同一目录,进入该目录执行如下命令。
jar cv Hello.jar META-INF net
注意META-INF为大写,所有出现它的地方都要大写
生成Hello.jar文件
5.测试
/*
* Created on 2005-10-8
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package net.angwin.ejb;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
/**
* @author rt
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class HelloClient {
public static void main(String[] args) {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
env.put(Context.PROVIDER_URL, "localhost:1099");
//env.put(Context.PROVIDER_URL, "localhost:1099");
env.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
try {
Context ctx = new InitialContext(env);
Object obj = ctx.lookup("Hello");
HelloHome home = (HelloHome) javax.rmi.PortableRemoteObject.narrow(obj, HelloHome.class);
Hello helloWorld = home.create();
System.out.println(helloWorld.getHello());
helloWorld.remove();
} catch (Exception e) {
e.printStackTrace();
System.out.println("Exception: " + e.getMessage());
}
}
}
6.运行
将打好包的Hello.jar文件放入JBOSS目录上的server\default\deploy目录,可以看到JBOSS有类似如下输出
09:43:37,375 INFO [EjbModule] Deploying Hello
09:43:37,484 INFO [EJBDeployer] Deployed: file:/D:/jboss-3.2.6/server/default/deploy/Hello.jar
如果看不到则jar文件没有做好,请检查以上步骤.
运行结果将看到Hello, EJB!
enjoy it!!!
浙公网安备 33010602011771号