Saturday, January 10, 2009

Java EJB Examples

1) Session Bean.

First set classpath.

a) BonusCalculator.java

package bonus;
import java.rmi.RemoteException;
import javax.ejb.EJBObject;

public interface BonusCalculator extends EJBObject{

public double calculateBonus(int basic,double multiplier ) throws RemoteException;
}

b) BonusCalculatorHome.java

package bonus;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;

public interface BonusCalculatorHome extends EJBHome{

public BonusCalculator create()throws RemoteException,CreateException;
}


c) BonusCalculatorBean.java

package bonus;

import javax.ejb.*;

public class BonusCalculatorBean implements SessionBean{

public double calculateBonus(int basic,double multiplier ){

double calculatedBonus=basic*multiplier;
return calculatedBonus;
}

public void ejbCreate(){}
public void setSessionContext(SessionContext ctx){}
public void ejbActivate(){}
public void ejbPassivate(){}
public void ejbRemove(){}

}


d) client1.java

package bonus;
import java.rmi.*;
import javax.rmi.*;
import javax.ejb.*;
import javax.naming.*;

public class client1 {

public static void main(String arg[])throws RemoteException{

try
{
Context initial =new InitialContext();

Context myEnv = (Context) initial.lookup("java:comp/env");
Object objRef = myEnv.lookup("ejb/bonus1");

BonusCalculatorHome home = (BonusCalculatorHome)PortableRemoteObject.narrow(objRef,BonusCalculatorHome.class);

BonusCalculator bean=home.create();
System.out.println("Bonus = "+bean.calculateBonus(10000,0.10));
}
catch(Exception e){}

}
}

-----------------------------------------------o/p
bonus>appclient -client s2client.jar

*********************************************************
a) Start\Programs\Sun Microsystems\Application Server PE\Start Default Server

b) http://localhost:6060 <------Apppserver c) Start\Programs\Sun Microsystems\Application Server PE\Deploytool d) File -- new -- Application. Application file name Application display name e) File -- new -- EnterPrise Bean. Create New JAR Module in Application JAR Display Name Edit Contents f) File -- new -- Application Client. Create New AppClient Module in Application Appclient Display Name. Edit Contents Next <--- Main Class Callback Handler Class EJB Ref's <---- Add <---- Coded Name ----> from client program
EJB Typr
Interfaces
Home interfaces
Local/Remote interfaces
JNDI Name

g) Tools --- Deploy.

*********************************************************
2) Entity Bean.

a) BonusCalculator.java
package bonus;
import java.rmi.RemoteException;
import javax.ejb.EJBObject;

public interface BonusCalculator extends EJBObject{

public void addAmount(double amount ) throws RemoteException;
public double displayAmount() throws RemoteException;

}


b) BonusCalculatorHome.java
package bonus;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;

public interface BonusCalculatorHome extends EJBHome{

public BonusCalculator create()throws RemoteException,CreateException;
}

c) BonusCalculatorBean.java
package bonus;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.ejb.*;

public class BonusCalculatorBean implements SessionBean{

double amount;

public void ejbCreate() throws CreateException{
this.amount = 2000.0;
}

public void setSessionContext(SessionContext ctx){}
public void ejbActivate(){}
public void ejbPassivate(){}
public void ejbRemove(){}

public void addAmount(double amount ){
this.amount+=amount;
}

public double displayAmount(){
return amount;
}

}

d) client1.java
package bonus;
import java.rmi.*;
import javax.rmi.*;
import javax.ejb.*;
import javax.naming.*;

public class client1 {

public static void main(String arg[])throws RemoteException{

try
{
Context initial =new InitialContext();
System.out.println("1");
Context myEnv = (Context) initial.lookup("java:comp/env");
System.out.println("2");
Object objRef = myEnv.lookup("ejb/bonus2");
System.out.println("3");
BonusCalculatorHome home = (BonusCalculatorHome)PortableRemoteObject.narrow(objRef,BonusCalculatorHome.class);
System.out.println("4");
BonusCalculator bean=home.create();
System.out.println("5");
double d = bean.displayAmount();
System.out.println("6");
System.out.println("Current Amount = "+d);


System.out.println("Adding amount");
bean.addAmount(1500.00);

System.out.println("Amount after Addition = "+bean.displayAmount());

}
catch(Exception e){}

}
}

-----------------------------------------------o/p
bonus>appclient -client a1client.jar
------------------------------------


*********************************************************

No comments:

Post a Comment