EmployeeBean.java Source code

Java tutorial

Introduction

Here is the source code for EmployeeBean.java

Source

    File:EmployeeBean.java

    import javax.ejb.Stateful;
    import javax.interceptor.AroundInvoke;
    import javax.interceptor.InvocationContext;

@Stateful(name = "MyEmployeeBean")
public class EmployeeBean implements EmployeeServiceLocal, EmployeeServiceRemote {

  public EmployeeBean() {
  }

  public void doAction() {
    System.out.println("Processing...");
  }

  @AroundInvoke
  public Object TimerLog(InvocationContext ctx) throws Exception {
    String beanClassName = ctx.getClass().getName();
    String businessMethodName = ctx.getMethod().getName();
    String target = beanClassName + "." + businessMethodName;
    long startTime = System.currentTimeMillis();
    System.out.println("Invoking " + target);
    try {
      return ctx.proceed();
    } finally {
      System.out.println("Exiting " + target);
      long totalTime = System.currentTimeMillis() - startTime;
      System.out.println("Business method " + businessMethodName + "in " + beanClassName + "takes "
          + totalTime + "ms to execute");
    }
  }
}

    File:EmployeeServiceLocal.java

    import javax.ejb.Local;
    import javax.ejb.Remote;

@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("MyEmployeeBean/remote");

    service.doAction();

  }

}

    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;
        }
    }