< Zurück | Weiter >

Lerneinheit 1.2: Erforderliche Klassen und Schnittstellen für Klasse 'SingletonCounterBean.java' erstellen

In Lerneinheit 1.2 werden Sie Schritt für Schritt durch die Erstellung der erforderlichen Klassen und Schnittstellen für die Klasse SingletonCounterBean.java geführt.

Bevor Sie mit dieser Lerneinheit beginnen können, müssen Sie Lerneinheit 1.1 abgeschlossen haben.
In dieser Lerneinheit werden Sie folgende Arbeitsschritte ausführen:
  1. Öffnen Sie die Klasse SingletonCounterBean.java im Java-Editor.
  2. Geben Sie unter der Annotation @Singleton die Zeichenfolge @Interceptors ein.
  3. Wenn Sie die Tastenkombination Strg+S zum Speichern drücken, sehen Sie ein Schnellkorrektursymbol Schnellkorrektursymbol neben der @Interceptors-Zeile. Klicken Sie mit der rechten Maustaste auf das Schnellkorrektursymbol und wählen Sie dann Schnellkorrektur aus:
  4. Wählen Sie 'Interceptors' (javax.interceptor)importieren aus und drücken Sie dann die Tastenkombination "STRG+S", um die Daten zu speichern.
  5. Klicken Sie mit der rechten Maustaste auf das Schnellkorrektursymbol und wählen Sie Schnellkorrektur aus.Wählen Sie Fehlende Attribute hinzufügen aus und ersetzen Sie (value={null}) durch (Audit.class). Drücken Sie dann die Tastenkombination "STRG+S", um die Daten zu speichern.
  6. Klicken Sie mit der rechten Maustaste auf das Schnellkorrektursymbol und wählen Sie Schnellkorrektur aus.Wählen Sie Klasse 'Audit' erstellen aus. Übernehmen Sie auf der Seite "Java-Klasse" die Standardwerte und klicken Sie dann auf Fertigstellen.
  7. Ersetzen Sie im Java-Editor für Audit.java den Standardcode durch diesen Code und drücken Sie dann die Tastenkombination "STRG+S", um die Daten zu speichern:
    // 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. Öffnen Sie die Klasse SingletonCounterBean im Java-Editor und ersetzen Sie den folgenden Code:
    public class SingletonCounterBean {
    
    
    }
    Geben Sie stattdessen den folgenden Code an:
    public class SingletonCounterBean implements LocalCounter, RemoteCounter {
    
        private static final String CounterDBKey = "PRIMARYKEY";
    
        // Containergesteuerte Persistenz verwenden - EntityManager injizieren
        @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;
        }
    }
    Drücken Sie die Tastenkombination "STRG+S", um die Daten zu speichern.
  9. Klicken Sie auf das Schnellkorrektursymbol neben der Zeile public class SingletonCounterBean und wählen Sie dannSchnittstelle 'LocalCounter' erstellen aus:
    Fehler bei LocalCounter
  10. Übernehmen Sie auf der Seite "Java-Schnittstelle" die Standardwerte und klicken Sie auf Fertigstellen.
  11. Daraufhin wird die Klasse LocalCounter.java im Java-Editor geöffnet. Ersetzen Sie den gesamten Code durch diesen Code und drücken Sie die Tastenkombination "STRG+S", um die Daten zu speichern:
    // 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. Rufen Sie wieder die Klasse SingletonCounterBean.java im Java-Editor auf.
  13. Klicken Sie auf das Schnellkorrektursymbol neben der Zeile public class SingletonCounterBean und wählen Sie Schnittstelle 'RemoteCounter' erstellen aus. Übernehmen Sie auf der Seite Java-Schnittstelle die Standardwerte und klicken Sie auf Fertigstellen. Ersetzen Sie den gesamten Code in RemoteCounter.java durch diesen Code und drücken Sie zum Speichern die STastenkombination "Strg+S".
    // 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. Rufen Sie wieder die Klasse SingletonCounterBean.java im Java-Editor auf.
  15. Klicken Sie mit der rechten Maustaste auf das Schnellkorrektursymbol neben @PersistenceContext und wählen Sie Schnellkorrektur aus. Wählen Sie 'PersistenceContext' (javax.persistence) importieren aus und drücken Sie dann die Tastenkombination "STRG+S", um die Daten zu speichern.
  16. Klicken Sie mit der rechten Maustaste auf das Schnellkorrektursymbol neben @EntityManager und wählen Sie dann Schnellkorrektur aus. Wählen Sie 'EntityManager' (javax.persistence) importieren aus und drücken Sie dann die Tastenkombination "STRG+S", um die Daten zu speichern.
  17. Klicken Sie mit der rechten Maustaste auf das Schnellkorrektursymbol neben JPACounterEntity und wählen Sie Schnellkorrektur aus. Wählen Sie Klasse 'JPACounterEntity' erstellen aus.
  18. Übernehmen Sie auf der Seite "Java-Klasse" die Standardwerte und klicken Sie dann auf Fertigstellen.
Sie sind nun bereit für Übung 1.3: Entitätsklasse und Datenbank für Datenpersistenz erstellen.
< Zurück | Weiter >
Symbol das den Typ des Artikels anzeigt. Artikel für Lerneinheit
Nutzungsbedingungen für Information Center | Feedback

Symbol für Zeitmarke Letzte Aktualisierung: 29.04.2014

Dateiname: exer12ejb31.html