CodeBit: The Simplest Possible EJB for JBoss?
I've been trying to simplify the process of making an EJB. And I think I have the simplest possible bean. And a simple client program. I've packaged this all rather neatly into a zip file so that you can instantly create an Eclipse project. Here is the zip file: SimpleBean.zip
SimpleBean.java
Make sure to get your JBoss server started. Then customize the build.xml file for your configuration (mostly just the
first 10 lines or so). Then open a DOS window and run ant deploy
. After the Ant process is done, run
the SimpleBeanClient class from Eclipse.
Let me know if you have any problems.
package com.affy.entity; import java.rmi.RemoteException; import javax.ejb.*; import com.affy.util.SimpleBeanUtil; /** * @ejb.bean name="SimpleBean" type="CMP" cmp-version="2.x" jndi-name="ejb/affy/SimpleBean" primkey-field="pKey" * @ejb.util generate="physical" */ public abstract class SimpleBean implements EntityBean { public EntityContext mContext; /** @ejb.persistence */ public abstract String getPKey(); public abstract void setPKey(String pKey); /** @ejb.create-method view-type="remote" */ public String ejbCreate() throws EJBException, CreateException { this.setPKey(SimpleBeanUtil.generateGUID(this)); return this.getPKey(); } public void ejbPostCreate() { /* do nothing */ } public void ejbRemove() throws RemoveException, EJBException, RemoteException {} public void ejbActivate() throws EJBException, RemoteException {} public void ejbPassivate() throws EJBException, RemoteException {} public void ejbLoad() throws EJBException, RemoteException {} public void ejbStore() throws EJBException, RemoteException {} public void setEntityContext(EntityContext lContext) { mContext = lContext; } public void unsetEntityContext() { mContext = null; } }
SimpleClient.java
package com.affy.client; import com.affy.remote.SimpleBean; import com.affy.home.SimpleBeanHome; import com.affy.util.SimpleBeanUtil; class SimpleBeanClient { public static void main(String[] args) { System.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); System.setProperty("java.naming.provider.url", "localhost:1099"); try { SimpleBeanHome home = SimpleBeanUtil.getHome(); SimpleBean sb = home.create(); String pKey = (String)sb.getPrimaryKey(); System.out.println("ID: " + pKey); SimpleBean b = home.findByPrimaryKey(pKey); System.out.println("ID: " + b.getPrimaryKey()); System.out.println("Done."); } catch(Exception e) { System.out.println(e.toString()); } } }