< Zurück | Weiter >

Lerneinheit 1.2: Erforderliche Klassen und Schnittstellen für die Klasse "StatelessCounterBean.java" erstellen

In Lerneinheit 1.2 werden Sie Schritt für Schritt durch die Erstellung der erforderlichen Klassen und Schnittstellen für die Klasse StatelessCounterBean.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 StatelessCounterBean.java im Java-Editor.
  2. Geben Sie unter der Annotation @Stateless 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 Schnellkorrektur aus:
  4. Wählen Sie 'Interceptors' (java.interceptor) importieren aus und drücken Sie zum Speichern die Tastenkombination "Strg+S".
  5. Es wird ein weiteres Schnellkorrektursybmol angezeigt. 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 "Neue Java-Klasse erstellen" die Standardwerte und klicken Sie 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 StatelessCounterBean im Java-Editor und ersetzen Sie diesen Code:
    public class StatelessCounterBean {
    
    
    }
    Geben Sie stattdessen den folgenden Code an:
    public class StatelessCounterBean 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("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;
        }
    }
    Drücken Sie zum Speichern die Tastenkombination "Strg+S":
  9. Klicken Sie mit der rechten Maustaste auf das Schnellkorrektursymbol neben der Zeile public class StatelessCounterBean, wählen Sie Schnellkorrektur und anschließend Schnittstelle 'LocalCounter' erstellen aus. Klicken Sie im Dialog Neue Java-Schnittstelle auf "Fertigstellen":
    Fehler bei LocalCounter
  10. 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();
    }
  11. Rufen Sie wieder die Klasse StatelessCounterBean.java im Java-Editor auf.
  12. Klicken Sie mit der rechten Maustaste auf das Schnellkorrektursybmol neben der Zeile public class StatelessCounterBean, wählen Sie Schnellkorrektur und anschließend Schnittstelle 'RemoteCounter' erstellen aus. Klicken Sie im Dialog Neue Java-Schnittstelle auf "Fertigstellen". Wenn die Klasse RemoteCounter.java im Java-Editor geöffnet ist, ersetzen Sie den gesamten Code durch diesen Code und drücken Sie zum Speichern die Tastenkombination "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();
    }
  13. Rufen Sie wieder die Klasse StatelessCounterBean.java im Java-Editor auf.
  14. 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.
  15. Klicken Sie mit der rechten Maustaste auf das Schnellkorrektursymbol neben private EntityManager em; und wählen Sie Schnellkorrektur aus. Wählen Sie 'EntityManager' (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 JPACounterEntity und wählen Sie Schnellkorrektur aus. Wählen Sie Klasse 'JPACounterEntity' erstellen aus. Übernehmen Sie auf der Assistentenseite "Neue Klasse" die Standardwerte und klicken Sie auf Fertigstellen.
Sie können nun mit der Lerneinheit 1.3 beginnen: 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: exer12ejb3.html