Java by API/javax.ejb/Stateful

Материал из Java эксперт
Перейти к: навигация, поиск

javax.ejb.Stateful

   <source lang="java">
 

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

}



 </source>
   
  
 
  



Stateful: name()

   <source lang="java">
 

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

}



 </source>