< Précédent | Suivant >

Leçon 1.2 : Création des classes et des interfaces requises pour la classe SingletonCounterBean.java

La leçon 1.2 vous aide à créer les classes et les interfaces requises pour la classe SingletonCounterBean.java.

Avant de commencer, vous devez terminer la leçon 1.1.
Dans cette leçon, vous allez
  1. Ouvrez votre classe SingletonCounterBean.java dans l'éditeur Java.
  2. Sous l'annotation @Singleton, tapez @Interceptors.
  3. Lorsque vous appuyez sur les touches CTRL+S pour sauvegarder, une icône de correctif rapide Icône de correctif rapide apparaît en regard de la ligne @Interceptors. Cliquez avec le bouton droit de la souris sur l'icône de correctif rapide et sélectionnez Correctif rapide :
  4. Sélectionnez import 'Interceptors' (javax.interceptor) et appuyez sur les touches CTRL+S pour sauvegarder.
  5. Cliquez avec le bouton droit de la souris sur l'icône de correctif rapide et sélectionnez Correctif rapide. Sélectionnez Ajouter des attributs manquants et remplacez (value={null}) par ( Audit.class ). Appuyez sur les touches CTRL+S pour sauvegarder.
  6. Cliquez avec le bouton droit de la souris sur l'icône de correctif rapide et sélectionnez Correctif rapide. Sélectionnez Créer la classe 'Audit'. Dans la page Classe Java, acceptez les valeurs par défaut et cliquez sur Terminer.
  7. Dans l'éditeur Java utilisé pour Audit.java, remplacez le code par défaut par le code ci-après et appuyez sur les touches CTRL+S pour sauvegarder :
    // This program may be used, executed, copied, modified and distributed
    // without royalty for the purpose of developing, using, marketing, or distributing.
    
    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. Ouvrez votre classe SingletonCounterBean dans l'éditeur Java et remplacez ce code :
    public class SingletonCounterBean {
    
    
    }
    Nouveau code :
    public class SingletonCounterBean implements LocalCounter, RemoteCounter {
    
        private static final String CounterDBKey = "PRIMARYKEY";
    
        // Use container managed persistence - inject the 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;
        }
    }
    Appuyez sur les touches CTRL+S pour sauvegarder.
  9. Cliquez sur l'icône de correctif rapide en regard de la ligne public class SingletonCounterBean et sélectionnez Créer une interface 'LocalCounter' :
    Erreur liée au compteur local
  10. A la page Interface Java, acceptez les valeurs par défaut et cliquez sur Terminer.
  11. Votre classe LocalCounter.java s'ouvre dans l'éditeur Java. Remplacez tout le code par le code ci-après et appuyez sur les touches CTRL+S pour sauvegarder :
    // This program may be used, executed, copied, modified and distributed
    // without royalty for the purpose of developing, using, marketing, or distributing.
    
    package com.ibm.example.websphere.ejb3sample.counter;
    
    import javax.ejb.Local;
    
    @Local
    public interface LocalCounter {
        public int increment();
        public int getTheValue();
    }
  12. Revenez à la classe SingletonCounterBean.java dans l'éditeur Java.
  13. Cliquez sur l'icône de correctif située à côté de la ligne public class SingletonCounterBean, puis sélectionnez Créer l'interface 'RemoteCounter'. A la page Interface Java, acceptez les valeurs par défaut et cliquez sur Terminer. Remplacez tout le code de RemoteCounter.java par ce code, et appuyez sur CTRL+S pour sauvegarder :
    // This program may be used, executed, copied, modified and distributed
    // without royalty for the purpose of developing, using, marketing, or distributing.
    
    package com.ibm.example.websphere.ejb3sample.counter;
    
    import javax.ejb.Remote;
    
    @Remote
    public interface RemoteCounter {
        public int increment();
        public int getTheValue();
    }
  14. Revenez à la classe SingletonCounterBean.java dans l'éditeur Java.
  15. Cliquez avec le bouton droit sur l'icône de correctif rapide en regard de @PersistenceContext et sélectionnez Correctif rapide. Sélectionnez Importer 'PersistenceContext' ( javax.persistence) et appuyez sur les touches CTRL+S pour sauvegarder.
  16. Cliquez avec le bouton droit sur l'icône de correctif rapide en regard de @EntityManager et sélectionnez Correctif rapide. Sélectionnez Importer 'EntityManager' ( javax.persistence ) et appuyez sur les touches CTRL+S pour sauvegarder.
  17. Cliquez avec le bouton droit sur l'icône de correctif rapide en regard de JPACounterEntity et sélectionnez Correctif rapide. Sélectionnez Créer la classe 'JPACounterEntity'.
  18. Dans la page Classe Java, acceptez les valeurs par défaut et cliquez sur Terminer.
A présent, vous êtes prêt à passer à l'exercice 1.3 "Création d'une classe entité et d'une base de données pour la persistance des données".
< Précédent | Suivant >
Icône indiquant le type de rubrique Rubrique de leçon de tutoriel
Dispositions pour les centres de documentation | Commentaires en retour

Icône d'horodatage Dernière mise à jour: May 29, 2014 10:11

Nom de fichier : exer12ejb31.html