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!!!


 

posted on 2005-10-13 16:52  今儿晴天!  阅读(1749)  评论(0)    收藏  举报

导航