Stateful Session Bean Lifecycle: PrePassivate

August 9, 2009 at 11:01 pm (JBoss) (, )

File: Employee.java

import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.PostRemove;

@Entity

public class Employee implements java.io.Serializable {
private int id;

private String firstName;

private String lastName;

@Id
@GeneratedValue
public int getId() {
return id;
}

@PostRemove
public void postRemove()
{
System.out.println(“@PostRemove”);
}

public void setId(int id) {
this.id = id;
}

public String getFirstName() {
return firstName;
}

public void setFirstName(String first) {
this.firstName = first;
}

public String getLastName() {
return lastName;
}

public void setLastName(String last) {
this.lastName = last;
}
}

File: EmployeeBean.java

import javax.ejb.PrePassivate;
import javax.ejb.Stateful;

@Stateful
public class EmployeeBean implements EmployeeServiceLocal, EmployeeServiceRemote {

public EmployeeBean() {
}
public void doAction(){
System.out.println(“doAction”);

}

@PrePassivate
public void PrePassivate() {
System.out.println(“PrePassivate”);
}
}

File: EmployeeServiceLocal.java

import java.util.Map;

import javax.ejb.Local;

@Local
public interface EmployeeServiceLocal {
public void doAction();
}

File: EmployeeServiceRemote.java

import javax.ejb.Remote;

@Remote
public interface EmployeeServiceRemote {
public void doAction();
}

File: jndi.properties

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost:1099

File: Main.java

import javax.ejb.EJB;
import javax.naming.InitialContext;

public class Main {

public static void main(String[] a) throws Exception {

EmployeeServiceRemote service = null;

// Context compEnv = (Context) new InitialContext().lookup(“java:comp/env”);

// service = (HelloService)new InitialContext().lookup(“java:comp/env/ejb/HelloService”);
service = (EmployeeServiceRemote) new InitialContext().lookup(“EmployeeBean/remote”);

service.doAction();

}

}

Post a Comment

You must be logged in to post a comment.