Beim Versuch, eine Drag-and-Drop-Operation von einer Seitendatensicht in eine Seite auszuführen, die eine Tabelle für freies Layout enthält, wird der NOT-Cursor angezeigt, und die Drag-and-Drop-Operation kann nicht ausgeführt werden.
Um eine Drag-and-Drop-Operation von einer Seitendatensicht auszuführen, wählen Sie zunächst die 'Textzelle' aus der Palette aus, und fügen Sie dann der Tabelle für freies Layout eine Textzelle hinzu. Führen Sie dann eine Drag-and-Drop-Operation von der Seitendatensicht in die Textzelle aus.
Wenn Sie versuchen, eine Webanwendung mit der SDO-Funktion zu implementieren, die über eine Treibermanagerverbindung auf eine relationale Datenbank zugreift, werden die Treiber-JARs nicht automatisch zum Klassenpfad des Servers hinzugefügt. Dies verursacht ClassNotFound-Fehler.
Momentan wird standardmäßig eine Datenquellenverbindung hergestellt, sobald die Anwendung auf die relationalen Datenbanken von Cloudscape, DB2, SQL Server und Oracle zugreift. Bei anderen Datenbanken, insbesondere bei Informix(R) und Sybase, wird eine Treibermanagerverbindung erstellt, was zur Folge hat, dass das beschriebene Problem auftritt.
Um die Treibermanagerverbindung so einzurichten, dass diese fehlerfrei funktioniert, müssen Sie die Pfadangaben der JAR-Komponenten für den Treiber zum Klassenpfad des Servers manuell hinzufügen. Führen Sie hierzu die Verwaltungskonsole des Servers aus und fügen Sie die Klassenpfadeinträge unter Server->Anwendungsserver-><serverName>->Java- und Prozessverwaltung ->Prozessdefinition->Java Virtual Machine->Klassenpfad aus.
Momentan generiert das Produkt keine Aktualisierungsmethode mit jeder relationalen Datenliste. Im Folgenden ist der Code aufgeführt, der in die Aktion eingebunden werden kann, um den Inhalt der Datenliste mit dem Namen myList zu aktualisieren.
try { getMyListMediator().applyChanges((DataObject)((ECoreEList)getMyList()).getEObject()); } catch (Throwable e) { logException(e); }
Wenn Ihr JDBC-Server mit Einstellungen ausgeführt wird, die von den Standardeinstellungen des Lieferanten abweichen, müssen Sie die SDO-Laufzeitverbindung bei der ersten Herstellung ändern.
Wenn ein Webprojekt von einem WAS V5-Server auf einen WAS V6-Server umgestellt wird, wird in bestimmten Fällen die Datei "WEB-INF/lib/wdo_web.jar" nicht gelöscht. Diese Datei ist auf einem WAS V6-Server nicht gültig und kann zu Problemen beim erneuten Generieren von Clientobjekten im Webprojekt führen. (Dies gilt nur, wenn Sie die Arbeitsschritte im Abschnitt zum Migrieren von JavaServer Faces-Ressourcen mit Faces-Clientkomponenten im Migrationshandbuch ausgeführt haben.)
Um dieses Problem zu vermeiden, müssen Sie diese JAR-Datei aus dem Bibliotheksordner (lib) löschen. Nach der Löschung dieser Datei müssen Sie die Datei "web.xml" Ihres Webprojekts öffnen und den Tag "taglib" entfernen, der auf diese JAR-Datei verweist. Sie können diese Löschung entweder über die Seite "Variablen" oder "Quelle" des Editors für Webimplementierungsdeskriptoren durchführen. Die URI für "taglib" lautet http://www.ibm.com/websphere/wdo/core. Wählen Sie anschließend in der Projektexplorersicht das Webprojekt und dann im Kontextmenü die Option "Eigenschaften" aus. Wählen Sie nun die Option Java-Erstellungspfad aus und entfernen Sie auf der Seite "Bibliotheken" alle Einträge für den Klassenpfad WDO_EMF_JARS_PATH/*.
Wenn Sie eine JSP-Seite mit einem relationalen Datensatz erstellen, die die Funktion für die automatische Schlüsselgenerierung verwendet, und hierbei als Zieleinheit ein V5.1-Server definiert ist, wird möglicherweise die folgende Fehlernachricht ausgegeben:
cvc-complex-type.2.4.d: Ungültiger Inhalt gefunden ab Element 'tables' (2 cvc-complex-type.2.4.d: Invalid content was found starting with element 'tables'). An dieser Position wurde kein untergeordnetes Element erwartet (No child element is expected at this point).
Diese Nachricht ist ungültig und kann ignoriert werden.
Wenn Sie WebSphere Application Server als Dienst ausführen und hierbei die Standardmethode zur Authentifizierung verwenden (Ausführung als angemeldeter Benutzer) und dann versuchen, innerhalb einer Webanwendung eine Verbindung zu DB2 herzustellen, ohne einen Benutzernamen und das zugehörige Kennwort anzugeben, wird möglicherweise die folgende Fehlernachricht ausgegeben:
java.sql.SQLException: [IBM][CLI-Treiber] SQL0567N "SYSTEM" ist keine zulässige Berechtigungs-ID. (java.sql.SQLException: [IBM][CLI Driver] SQL0567N "SYSTEM" is not a valid authorization ID.) SQLSTATE=42602 DSRA0010E: SQL-Status = 42602, Fehlercode = -567 (SQLSTATE=42602 DSRA0010E: SQL State = 42602, Error Code = -567)
Um diesen Fehler zu vermeiden, müssen Sie in der Anwendung eine Benutzer-ID und das entsprechende Kennwort angeben oder WAS explizit (durch Angabe der Benutzer-ID und des Kennworts) so einstellen, dass die Ausführung unter einem Benutzerkonto erfolgt, das über Zugriff auf die DB2-Installation verfügt.
Wenn Sie eine ungespeicherte JSP (mit nicht festgeschriebenen Änderungen) schließen und nach der Eingabeauffordeung die JSP schließen, werden die nicht festgeschriebenen Änderungen an Ihren WDO/SDO-Dateien möglicherweise nicht gespeichert.
Um dies zu vermeiden, stellen Sie nach der Konfiguration eines relationalen Satzes bzw. einer relationalen Satzliste sicher, dass Sie die JSP durch Drücken von STRG+S oder durch Klicken auf Datei--&Speichern sichern.
Dieses Problem tritt in WDO-Anwendungen auf, die für die Ausführung auf einem Websphere V51-Server erstellt und zur Ausführung auf einem Websphere V60-Server migriert wurden. Wenn in diesem Szenario Ihre Faces-Seite einen Satz oder eine Satzliste mit mehr als einer enthaltenen Filterklausel hat, löst die Seite bei Ausführung auf dem Server möglicherweise folgende Ausnahmebedingung aus:
java.lang.ArrayIndexOutOfBoundsException: 1 at org.eclipse.emf.ecore.impl.DynamicEObjectImpl.dynamicGet(DynamicEObjectImpl.java:192) at org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$InternalSettingDelegateSingleData.dynamicGet(EStructuralFeatureImpl.java:1758) at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eDynamicGet(BasicEObjectImpl.java:485) at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:476)e at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java(Compiled Code)) at com.ibm.etools.webtools.sdo.runtime.internal.MapDataObjectImpl.getValue(MapDataObjectImpl.java:197) at com.ibm.etools.webtools.sdo.runtime.internal.MapDataObjectImpl.put(MapDataObjectImpl.java:162) at pagecode.PageCodeBase.resolveParams(PageCodeBase.java:189)
Das Problem besteht im Parameterobjekt des Mediators.
Um dieses Problem zu beheben, müssen Sie das Parameterobjekt des Mediators korrekt setzen. Bearbeiten Sie hierzu Ihre Methode getList oder getRecord
von:
public DataListAccessBean getList1() { if (list1 == null) { try { resolveParams(getList1Mediator().getParams(), list1ArgNames, list1ArgValues, "list1_params_cache"); DataGraphAccessBean graph = getList1Mediator().fetchGraph(); list1 = graph.getDataListAccessBean(); } catch (Throwable e) { logException(e); } } return list1; }
in:public DataListAccessBean getList1() { if (list1 == null) { try { getList1Mediator().setParams( new MapDataObjectImpl(((EObject) new MediatorImpl( (Metadata) getList1Mediator().getMetadata(), new NullConnectionWrapper()) .getParameterDataObject()).eClass())); resolveParams(getList1Mediator().getParams(), list1ArgNames, list1ArgValues, "list1_params_cache"); DataGraphAccessBean graph = getList1Mediator().fetchGraph(); list1 = graph.getDataListAccessBean(); } catch (Throwable e) { logException(e); } } return list1; }
Beachten Sie das Codefragment, das das Parameterobjekt festlegt.
Datenquellen werden auf dem Server während der Einstellung Auf Server ausführen nicht korrekt konfiguriert, wenn ein standardmäßiger Server ausgewählt wurde. Um sicherzustellen, dass Ihre Datenquelle ordnungsgemäß eingerichtet wird, wählen Sie keinen standardmäßigen Server aus. Sobald Ihre Anwendung erfolgreich publiziert wurde, können Sie einen Standardserver auswählen. Sie dürfen jedoch keine Änderungen an Ihren Datenquellen ausführen.
Durch die Aktion zum Umbenennen eines Schemas für eine(n) Satz/Liste wird der Schemaname der Tabelle für eindeutige Schlüssel nicht aktualisiert.
Um dieses Problem zu umgehen, suchen Sie die XML-Datei, in der die Abfrage für den Satz bzw. die Liste gespeichert ist, und aktualisieren Sie den eindeutigen Schemanamen der Tabelle für eindeutige Schlüssel.