< Anterior | Siguiente >

Lección 1.2: Crear clases e interfaces necesarias para la clase StatelessCounterBean.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 StatelessCounterBean.java.

Antes de empezar, debe haber completado la lección 1.1.
En esta lección, realizará las acciones siguientes:
  1. Abra la clase StatelessCounterBean.java en el editor Java.
  2. Debajo de la anotación @Stateless, 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 botón derecho del ratón en el icono de arreglo rápido con el botón derecho del ratón y seleccione Arreglo rápido:
  4. Seleccione Importar 'Interceptors' (java.interceptor) y pulse CONTROL+S para guardar.
  5. Aparecerá otro icono de arreglo rápido. 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 botón derecho del ratón en 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 Crear una clase nueva de 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 StatelessCounterBean en el editor Java y sustituya este código
    public class StatelessCounterBean {
    
    
    }
    por este código:
    public class StatelessCounterBean 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("StatelessCounterBean: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("StatelessCounterBean:increment - caught unexpected exception: " + t);
                t.printStackTrace();
            }
    
            return result;
        }
    }
    Pulse CONTROL+S para guardar:
  9. Pulse el botón derecho del ratón en el icono de arreglo rápido junto a la línea public class StatelessCounterBean, seleccione Arreglo rápido y, a continuación, seleccione Crear interfaz 'LocalCounter' y en el diálogo Nueva Interfaz Java pulse Finalizar:
    Error de contador local
  10. 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();
    }
  11. Vuelva a la clase StatelessCounterBean.java en el editor Java.
  12. Pulse el botón derecho del ratón en el icono de arreglo rápido junto a la línea public class StatelessCounterBean, seleccione Arreglo rápido y, a continuación, seleccione Crear interfaz 'RemoteCounter'. En el diálogo Nueva interfaz de Java, pulse Finalizar. Cuando se abra la Clase RemoteCounter.java del editor Java, sustituya todos los códigos 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();
    }
  13. Vuelva a la clase StatelessCounterBean.java en el editor Java.
  14. 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.
  15. Pulse el botón derecho en el icono arreglo rápido junto a private EntityManager em; y seleccione Arreglo rápido. Seleccione Importar 'EntityManager' (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 JPACounterEntity y seleccione Arreglo rápido. Seleccione Crear clase 'JPACounterEntity'. en la página del asistente Nueva clase, acepte los valores predeterminados y pulse Finalizar.
Ahora ya está preparado para pasar a la Lección 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: exer12ejb3.html