< Anterior | Siguiente >

Lección 1.2: Crear clases e interfaces necesarias para la clase SingletonCounterBean.java

La lección 1.2 le guiará por los pasos necesarios para la creación de las clases e interfaces necesarias para la clase SingletonCounterBean.java.

Antes de empezar, debe haber completado la lección 1.1.
En esta lección, realizará las acciones siguientes:
  1. Abra la clase SingletonCounterBean.java en el editor Java.
  2. Debajo de la anotación @Singleton, escriba @Interceptors.
  3. Cuando pulse las teclas Control+S para guardar, verá un icono de arreglo rápido icono de arreglo rápido junto a la línea @Interceptors. Pulse el icono de arreglo rápido con el botón derecho del ratón y seleccione Arreglo rápido:
  4. Seleccione Importar 'Interceptors' (javax.interceptor) y pulse Control+S para guardar.
  5. Pulse el icono de arreglo rápido con el botón derecho del ratón y seleccione Arreglo rápido. Seleccione Añadir atributos faltantes, sustituya (value={null}) por (Audit.class) y pulse Control+S para guardar.
  6. Pulse el icono de arreglo rápido con el botón derecho del ratón y seleccione Arreglo rápido. Seleccione Crear clase 'Audit'. En la página Clase Java, acepte los valores predeterminados y pulse Finalizar.
  7. En el editor Java correspondiente a Audit.java, sustituya el código predeterminado por este código y pulse Control+S para guardar:
    // Este programa puede utilizarse, ejecutarse, copiarse, modificarse y distribuirse
    // libre de derechos de autor a efectos de desarrollo, utilización, comercialización o distribución.
    
    package com.ibm.example.websphere.ejb3sample.counter;
    
    
    import java.io.Serializable;
    
    import javax.interceptor.AroundInvoke;
    import javax.interceptor.InvocationContext;
    
    
    public class Audit implements Serializable {
    
        private static final long serialVersionUID = 4267181799103606230L;
    
        @AroundInvoke
    
        public Object methodChecker (InvocationContext ic)
        throws Exception
        {
            System.out.println("Audit:methodChecker - About to execute method: " + ic.getMethod());
            Object result = ic.proceed();
            return result;
        }
    }
  8. Abra la clase SingletonCounterBean en el editor Java y sustituya este código,
    public class SingletonCounterBean {
    
    
    }
    por este código:
    public class SingletonCounterBean implements LocalCounter, RemoteCounter {
    
        private static final String CounterDBKey = "PRIMARYKEY";
    
        // Utilizar persistencia gestionada por contenedor - inyectar EntityManager
        @PersistenceContext (unitName="Counter")
        private EntityManager em;
        
        public int increment()
        {
            int result = 0;
            
            try {
    
                JPACounterEntity counter = em.find(JPACounterEntity.class, CounterDBKey);
    
                if ( counter == null ) {
                    counter = new JPACounterEntity();
                    counter.setPrimaryKey(CounterDBKey);
                    em.persist( counter );
                }
    
                counter.setValue( counter.getValue() + 1 );
                em.flush();
                em.clear();
    
                result = counter.getValue();
    
            } catch (Throwable t) {            
                System.out.println("SingletonCounterBean:increment - caught unexpected exception: " + t);
                t.printStackTrace();
            }
    
            return result;
        }
    
    
        public int getTheValue()
        {
            int result = 0;
    
            try {
                JPACounterEntity counter = em.find(JPACounterEntity.class, CounterDBKey);
    
                if ( counter == null ) {
                    counter = new JPACounterEntity();
                    em.persist( counter );
                    em.flush();
                }
    
                em.clear();
    
                result = counter.getValue();
            } catch (Throwable t) {
                System.out.println("SingletonCounterBean:increment - caught unexpected exception: " + t);
                t.printStackTrace();
            }
    
            return result;
        }
    }
    Pulse Control+S para guardar.
  9. Pulse el icono de arreglo rápido situado junto a la línea public class SingletonCounterBean y seleccione Crear interfaz 'LocalCounter':
    Error de contador local
  10. En la página Interfaz Java, acepte los valores predeterminados y pulse Finalizar.
  11. La clase LocalCounter.java se abrirá en el editor Java. Sustituya todo el código por este código y pulse Control+S para guardar:
    // Este programa puede utilizarse, ejecutarse, copiarse, modificarse y distribuirse
    // libre de derechos de autor a efectos de desarrollo, utilización, comercialización o distribución.
    
    package com.ibm.example.websphere.ejb3sample.counter;
    
    import javax.ejb.Local;
    
    @Local
    public interface LocalCounter {
        public int increment();
        public int getTheValue();
    }
  12. Regrese a la clase SingletonCounterBean.java en el editor Java.
  13. Pulse el icono de arreglo rápido situado junto a la línea public class SingletonCounterBean y seleccione Crear interfaz 'RemoteCounter'. En la página Interfaz Java, acepte los valores predeterminados y pulse Finalizar. Sustituya todo el código de RemoteCounter.java por este código y pulse Control+S para guardar:
    // Este programa puede utilizarse, ejecutarse, copiarse, modificarse y distribuirse
    // libre de derechos de autor a efectos de desarrollo, utilización, comercialización o distribución.
    
    package com.ibm.example.websphere.ejb3sample.counter;
    
    import javax.ejb.Remote;
    
    @Remote
    public interface RemoteCounter {
        public int increment();
        public int getTheValue();
    }
  14. Regrese a la clase SingletonCounterBean.java en el editor Java.
  15. Pulse con el botón derecho del ratón el icono de arreglo rápido situado junto a @PersistenceContext y seleccione Arreglo rápido. Seleccione Importar 'PersistenceContext' (javax.persistence) y pulse Control+S para guardar.
  16. Pulse con el botón derecho del ratón el icono de arreglo rápido situado junto a @EntityManager y seleccione Arreglo rápido. Seleccione Importar 'EntityManager' (javax.persistence) y pulse Control+S para guardar.
  17. Pulse con el botón derecho del ratón el icono de arreglo rápido situado junto a JPACounterEntity y seleccione Arreglo rápido. Seleccione Crear clase 'JPACounterEntity'.
  18. En la página Clase Java, acepte los valores predeterminados y pulse Finalizar.
Ahora ya está preparado para pasar el Ejercicio 1.3, Crear una clase de entidad y una base de datos para la persistencia de datos.
< Anterior | Siguiente >
Icono que indica el tipo de tema Tema de lección de guía de aprendizaje
Términos y condiciones para centros de información | Comentarios

Icono de indicación de fecha y hora Última actualización: 22 de abril de 2014

Nombre de archivo: exer12ejb31.html