< Précédent | Suivant >

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

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

Avant de commencer, vous devez terminer la leçon 1.1.
Dans cette leçon, vous
  1. Ouvrez la classe StatelessCounterBean.java dans l'éditeur Java.
  2. Sous l'annotation @Stateless, entrez @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' (java.interceptor) et appuyez sur les touches CTRL+S pour sauvegarder.
  5. Une autre icône de correctif rapide s'affiche. 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 de création d'une 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 StatelessCounterBean dans l'éditeur Java et remplacez ce code
    public class StatelessCounterBean {
    
    
    }
    Nouveau code :
    public class StatelessCounterBean 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("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;
        }
    }
    Appuyez sur les touches CTRL+S pour sauvegarder :
  9. Cliquez avec le bouton droite sur l'icône de correctif rapide en regard de la ligne public class StatelessCounterBean, sélectionnez Correctif rapide, puis sélectionnez Créer l'interface 'LocalCounter' et dans la boîte de dialogue Nouvelle interface Java, cliquez sur Terminer :
    erreur liée au compteur local
  10. 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();
    }
  11. Revenez à la classe StatelessCounterBean.java dans l'éditeur Java.
  12. Cliquez avec le bouton droit sur l'icône de correctif rapide en regard de la ligne public class StatelessCounterBean, sélectionnez Correctif rapide, puis sélectionnez Créer l'interface 'RemoteCounter'. Dans la boîte de dialogue Nouvelle interface Java, cliquez sur Terminer. Lorsque la classe RemoteCounter.java s'ouvre dans l'éditeur Java, remplacez tout le code 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();
    }
  13. Revenez à la classe StatelessCounterBean.java dans l'éditeur Java.
  14. 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.
  15. Cliquez avec le bouton droit sur l'icône de correctif rapide en regard de private EntityManager em; et sélectionnez Correctif rapide. Sélectionnez Importer 'EntityManager' ( 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 JPACounterEntity et sélectionnez Correctif rapide. Sélectionnez Créer la classe 'JPACounterEntity'. A la page d'assistant de nouvelle classe, acceptez les valeurs par défaut et cliquez sur Terminer.
A présent, vous êtes prêt à passer à la leçon 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 : exer12ejb3.html