Ressourcen der Faces Client-Laufzeit in einem Webprojekt aktualisieren

Die JavaServer Faces Client-Laufzeitressourcen, die ursprünglich mit WebSphere Studio Site Developer V5.1.x bereitgestellt wurden, wurden für Rational Web Developer V6.0.1 aktualisiert. Wenn Sie die Entwicklung der mit dieser früheren Produktversion erstellten Projekte fortsetzen wollen, wird empfohlen, dass Sie die Ressourcen für die Faces Client-Laufzeit auf die jeweils neueste Stufe aktualisieren.

In Rational Web Developer V6.0.1 werden die Faces Client-Laufzeitressourcen automatisch aktualisiert, wenn ein Webprojekt importiert oder ein Arbeitsbereich geöffnet wird, das bzw. der Ressourcen enthält, die nicht auf dem neuesten Stand sind. Nachdem Sie ein Webprojekt oder einen Arbeitsbereich aus WebSphere Studio Site Developer V5.1.x in Rational Web Developer V6.0.1 importiert bzw. geöffnet haben, werden Sie aufgefordert, die Faces Client-Laufzeitressourcen auf den neuesten Stand zu bringen.

Laufzeitressourcen automatisch aktualisieren

Führen Sie folgende Schritte aus, um die Faces Client-Laufzeitressourcen für ein Webprojekt automatisch zu aktualisieren:
  1. Importieren Sie ein Webprojekt (oder einen Arbeitsbereich) mit Faces Client-Inhalt aus WebSphere Studio Site Developer V5.1.x. Das Fenster Projektmigration wird geöffnet.
    Anmerkung: Wenn das Fenster Projektmigration nicht geöffnet wird, ist möglicherweise Ihre Einstellung für automatische Erstellung inaktiviert. Klicken Sie im Projektexplorer mit der rechten Maustaste auf Ihr Webprojekt, und wählen Sie Build > Projekt aus; der Prozess zum erneuten Erstellen eines Projekts öffnet das Fenster Projektmigration.
  2. Wenn in Ihrem Arbeitsbereich noch andere Webprojekte mit Faces Client-Inhalt vorhanden sind, können Sie Diese Auswahl auf alle anderen Projekte anwenden, für die ein Upgrade ausgeführt werden muss auswählen, damit alle diese Projekte aktualisiert werden.
  3. Klicken Sie auf eine der folgenden Optionen:
    • Klicken Sie auf Ja, um die Aktualisierung automatisch auszuführen.
    • Klicken Sie auf Später, um die Aktualisierung auf einen späteren Zeitpunkt zu verschieben. Wenn Sie die Laufzeitressourcen automatisch aktualisieren wollen, nachdem Sie Später ausgewählt haben, müssen Sie das Webprojekt schließen und erneut starten oder die Workbench neu starten, bevor Sie Ihr Webprojekt erneut erstellen. Wenn Sie die automatische Erstellung inaktiviert haben, klicken Sie mit der rechten Maustaste auf Ihr Webprojekt, und wählen Sie Projekt erstellen aus.
    • Klicken Sie auf Nie, um Ihre Laufzeitressourcen auf dem Stand der früheren Version beizubehalten. Wenn Sie Nie auswählen und absichtlich die Laufzeitressourcen der früheren Version beibehalten, werden Sie nicht mehr zur Aktualisierung der Ressourcen aufgefordert. Sollte dann zukünftig eine Aktualisierung der Laufzeitressourcen erforderlich werden, müssen Sie dies manuell ausführen.
  4. Löschen Sie in Ihrem Webprojekt im Ordner Java-Ressourcen > JavaSource alle Clientdatenmediatorklassenpakete, die der Namenskonvention com.ibm.dynwdo4jsmediators.<clientdatenname> entsprechen. Löschen Sie NICHT das Paket mit dem Namen com.ibm.dynwdo4jsmediators. Dieses Paket enthält Metadaten (ecore- und emap-Dateien) für die Clientdaten in Ihrem Projekt, die zur erneuten Generierung der Mediatoren verwendet werden.
  5. Öffnen Sie in Ihrem Webprojekt im Ordner Java-Ressourcen > JavaSource die Datei OdysseyBrowserFramework.properties, und löschen Sie die Einträge für EMAP_FILES und ECORE_FILES.
  6. Führen Sie für jedes Datenobjekt in Der Clientdatensicht Folgendes aus:
    1. Klicken Sie mit der rechten Maustaste, und wählen Sie Konfigurieren aus.
    2. Klicken Sie auf der Registerkarte Erweitert auf Von serverseitigen Daten neu generieren, um alle Mediatoren für das Datenobjekt erneut zu generieren.

Laufzeitressourcen manuell aktualisieren

Führen Sie folgende Schritte aus, um die Faces Client-Laufzeitressourcen für ein Webprojekt manuell zu aktualisieren:
  1. Führen Sie die in Faces-Laufzeitressourcen in einem Webprojekt aktualisieren unter Laufzeitressourcen manuell aktualisieren aufgeführten Schritte aus.
  2. Führen Sie die Schritte 4-6 des oben aufgeführten Abschnitts Laufzeitressourcen automatisch aktualisieren aus.

Es können Probleme auftreten, wenn Sie den Zielserver eines Projekts, das Faces Client-Komponenten enthält, von WebSphere Application Server V5.1 in V6.0 ändern.

Wenn Sie den Zielserver eines Projekts, das Faces Client-Komponenten enthält, von WebSphere Application Server V5.1 in V6.0 ändern, können die folgenden beiden Probleme auftreten:
  • Bereits erstellte Mediatorklassen von Clientdaten können nicht mehr kompiliert werden. Sie müssen nacheinander für jeweils eine JSP erneut generiert werden.
    1. Öffnen Sie die Datei OdysseyBrowserFramework.properties, die sich im Stammverzeichnis des Java-Quellenordners befindet. Speichern Sie den Inhalt für zukünftige Verwendung.
    2. Suchen Sie in der Datei OdysseyBrowserFramework.properties für jede JSP in Ihrem Webprojekt, die Faces Client-Daten enthält, die Einträge <clientdatenname>.ecore und <clientdatenname>.emap für die Eigenschaften EMAP_FILES und ECORE_FILES.
    3. Behalten Sie nur die übereinstimmenden Einträge für die Clientdaten auf Ihrer JSP, und löschen Sie alle anderen Einträge.
      Beispiel: Ihre aktuelle Seite enthält Clientdaten namens ACCOUNT, und Ihre Eigenschaftsdatei '.properties' enthält den folgenden Eintrag:
      EMAP_FILES=com\\ibm\\dynwdo4jsmediators/account.emap com\\ibm\\dynwdo4jsmediators/orders.emap
      In diesem Fall müssen Sie com\\ibm\\dynwdo4jsmediators/orders.emap aus dem Eintrag löschen. Der Eintrag würde nun wie folgt aussehen:
      EMAP_FILES=com\\ibm\\dynwdo4jsmediators/account.emap
    4. Sichern Sie die Eigenschaftsdatei.
    5. Wählen Sie ein Clientdatenobjekt in einer JSP aus, klicken Sie mit der rechten Maustaste, und wählen Sie Konfigurieren aus.
    6. Klicken Sie auf der Registerkarte Erweitert auf die Option Alle erneut generieren. Dadurch werden alle Artefakte erneut generiert, die für sämtliche Clientdaten auf der aktuellen JSP benötigt werden.
    7. Wiederholen Sie die Schritte 2-6 für jede JSP in Ihrem Webprojekt, die Clientdaten enthält.
    8. Nachdem Sie die Mediatorklassen der Clientdaten erneut generiert haben, werden immer noch einige Mediatorklassen vorhanden sein, die nicht kompiliert werden können. Hierbei handelt es sich um Mediatoren für Schemaelemente, die in V6.x nicht mehr in SDOs (Service Data Objects) verwendet werden und die der Namenskonvention *_DataGraphSchema_wdo4js_*.java und *_RootDataObject_wdo4js_*.java entsprechen. Löschen Sie diese Mediatorklassen aus Ihrem Webprojekt, um diese Kompilierungsfehler zu vermeiden.
    9. Stellen Sie nach erfolgreichem Abschluss der Aktualisierung den ursprünglichen Inhalt der Datei OdysseyBrowserFramework.properties wieder her.
  • Faces Client-Komponenten der Baumstrukturansicht, die an WDOs gebunden sind, können auf dem Server nicht mehr ausgeführt werden, nachdem der Zielserver des Projekts in WebSphere Application Server V6.0 geändert wurde. Dieses Problem kann umgangen werden, indem in der Quellenansicht Ihrer JSP alle className-Tags so geändert werden, dass sie statt der WDO-DataObject-Klasse die SDO-DataObject-Klasse verwenden. Beispiel für ein WDO mit dem Namen account:
    1. Ändern Sie für das Stammobjekt den Tag 'className' von className="com.ibm.etools.wdo.DataObject(DynWDO`account`RootDataObject)" in className="commonj.sdo.DataObject(DynWDO`account`DataGraphRoot)".
    2. Ändern Sie für alle untergeordneten Knoten den Tag 'className' von className="com.ibm.etools.wdo.DataObject(DynWDO`account`ACCOUNT)" in className="commonj.sdo.DataObject(DynWDO`account`ACCOUNT)", wobei ACCOUNT der Name des Datenknotens ist.

Upgrade auf automatisierte Diff-Handler und -Prozessoren

Diff-Prozessoren und -Handler werden automatisch generiert. Wenn Sie Diff-Handler und -Prozessoren für Ihre Faces Client-Komponenten in WebSphere Studio V5.1.x geschrieben haben, wird empfohlen, den entsprechenden Code zu verwerfen und die automatisch generierten Handler und Prozessoren zu verwenden:
  1. Generieren Sie die neuen Diff-Handler und -Prozessoren für jedes Clientdatenobjekt in Ihrem Webprojekt.
    1. Wählen Sie das Clientdatenobjekt aus, klicken Sie mit der rechten Maustaste, und wählen Sie Konfigurieren aus.
    2. Klicken Sie auf der Registerkarte Erweitert auf die Option Alle erneut generieren.
  2. Entfernen Sie den Code, den Sie zum Aufrufen Ihrer Diff-Prozessoren und -Handler geschrieben haben, da die generierten Prozessoren und Handler automatisch aufgerufen werden. Dieser Code wurde beispielsweise häufig für das Befehlsereignis für die Komponente 'Befehlsschaltfläche' verwendet, z. B. wie folgt:
    String Diff = getClientData1().getDiffStr();
    if (DiffProcessor.Synch(getRoot(), Diff) == true)
     return "";
    return "failure";
  3. Entfernen Sie aus Ihrem Projekt die Dateien, die den alten angepassten Handlern und Prozessoren entsprechen, die Sie erstellt haben.

Angepasste, für V5.1.x geschriebene Diff-Handler und -Prozessoren beibehalten

Wenn Sie entgegen jeder Empfehlung Ihre angepassten Diff-Handler und -Prozessoren aus V5.1.x beibehalten wollen, müssen Sie diese ändern, damit sie in V6.0 funktionieren, da die Schnittstelle 'DiffHandler' und die Klasse 'DiffInfo' geändert wurden.
  • Die Schnittstelle 'DiffHandler' wurde wie folgt geändert:
    • Die Methode 'handle' löst jetzt neben 'DiffException' auch 'Exception' aus.
    • Die neue Methode 'find' wird vom Framework für die Suche nach Objekten verwendet.
    • Die neue Methode 'getId' wird für das Debug verwendet und ermöglicht es dem Framework, den Wert eines Objekts zu drucken.

    Die Methoden 'find' und 'getId' werden intern von den generierten Diff-Handlern verwendet. Sie können leere Methoden für Ihre angepassten Diff-Handler implementieren, damit diese mit der Schnittstelle funktionieren. Diese Methoden werden vom Framework nicht aufgerufen.

    Die neue Schnittstelle 'DiffHandler' sieht wie folgt aus:
    public interface DiffHandler
     {
       public void   handle(DiffInfo Diff) throws DiffException, Exception;
       public Object find  (DiffInfo Diff) throws DiffException, Exception;
       public String getId (DiffInfo Diff, boolean Original);
     }
  • Die Klasse 'DiffInfo' wurde wie folgt geändert:
    • Die Methode 'ArrayList getAncestors()' wurde ersetzt durch die Methode 'DiffInfo getParent()', die eine einfachere Möglichkeit bietet, auf die Informationen für die einzelnen Objekte in der Baumstruktur der Vorgänger rekursiv zuzugreifen.
    • Die Methoden 'getCurrent()' und 'getOriginal()' geben jetzt anstelle eines EObject-Objekts ein DataObject-Objekt zurück. Es ist nicht obligatorisch, den Code zu ändern und das Objekt 'DataObject' zu verwenden. Allerdings ist die Schnittstelle 'DataObject' viel einfacher und intuitiver zu verwenden als 'EObject'. Für vorhandenen Code können Sie problemlos ein DataObject-Objekt in ein EObject-Objekt umsetzen.
    • Die Methode 'String getPropertyName()' wurde neu hinzugefügt, um den Eigenschaftsnamen, für den dieses Objekt gilt, zu ermitteln. Dies ist beispielsweise dann von Bedeutung, wenn eine bestimmte Klasse über zwei Eigenschaften desselben Typs verfügt. In der vorherigen Klasse 'DiffInfo' wäre der Code nicht in der Lage gewesen, zwischen den beiden Eigenschaften zu unterscheiden.
    Die neue Klasse 'DiffInfo' sieht wie folgt aus:
    public class DiffInfo
     {
       public char       getCrud()
       public DataObject getCurrent()
       public String     getEClassName()
       public DataObject getOriginal()
       public String     getPropertyName()
       public DiffInfo   getParent()
     }
    Anmerkung: Die Klasse 'DiffInfo' wird nicht länger für öffentliche Verwendung unterstützt, da Diff-Prozessoren und -Handler nun automatisch generiert werden. Die Beibehaltung der alten Handler ist nur eine vorläufige Lösung, und es wird dringend empfohlen, automatisierte Handler zu verwenden.
Änderungen an Faces Client-Komponenten in V6.0
  • Unterstützung für WebSphere Application Server V6.0.
  • Unterstützung für Servicedatenobjekte (SDOs) unter WebSphere Application Server V6.0.
  • EGL-Daten werden jetzt als Clientdaten unterstützt.
  • Diff-Prozessoren und -Handler werden automatisch generiert.
  • Für die folgenden Komponenten sind neue Ereignisse vorhanden:
    • TabbedPanel: onInitialPageShow
    • Tree: onNodeExpand, onNodeCollapse, onExpand, onCollapse
    • DataGrid: onPage, onSort, onFilter
Zugehörige Tasks
Faces-Laufzeitressourcen für Webprojekte aus Rational Web Developer V6.0 aktualisieren
Faces-Laufzeitressourcen in einem Webprojekt aktualisieren
Nutzungsbedingungen | Feedback
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved. (C) Copyright IBM Deutschland GmbH und andere 2000, 2005. Alle Rechte vorbehalten.