Durante il trascinamento dalla vista Dati pagina su una pagina contenente una tabella a formato libero, viene visualizzato il cursore NOT e non sarà possibile effettuare il trascinamento.
Per trascinare gli elementi dalla vista Dati di pagina, selezionare 'Cella di testo' nella tavolozza ed aggiungerla alla tabella a formato libero. Quindi, trascinare l'elemento desiderato dalla vista Dati di pagina nella cella di testo.
Durante la distribuzione di un'applicazione Web (con una funzione SDO) che accede a un database relazionale utilizzando una connessione driver manager, i jar del driver non vengono aggiunti automaticamente al percorso classi del server. Ciò causa errori ClassNotFound.
Attualmente per impostazione predefinita, viene creata una connessione all'origine dati ogni qual volta l'applicazione accede ai seguenti database relazionali: Cloudscape, DB2, SQL Server ed Oracle. Ma per qualsiasi altro database, in genere Informix® & Sybase, viene creata una connessione di gestione driver e si presenta il problema appena descritto.
Affinché la connessione di gestione driver funzioni, è necessario aggiungere manualmente i percorsi jar del driver al percorso classi del server. Per effettuare questa operazione, eseguire Admin Console del server, quindi aggiungere le voci del percorso di classe in Server->Applicazione Server-><Nome server>->Java e Gestione processo->Definizione del processo->Java Virtual Machine->Percorso classe
Il prodotto non genera al momento un metodo aggiornato con ciascun elenco dati relazionali. Di seguito è riportato il codice che è possibile inserire nell'azione per aggiornare il contenuto di un elenco dati chiamato myList
try { getMyListMediator().applyChanges((DataObject)((ECoreEList)getMyList()).getEObject()); } catch (Throwable e) { logException(e); }
Se il server JDBC è in esecuzione in qualsiasi altro ambiente oltre a quello predefinito del fornitore, sarà necessario modificare la connessione di runtime SDO quando viene creata per la prima volta.
Quando si riassegna un progetto da un server WAS V5 a un server WAS V6, a volte il file WEB-INF/lib/wdo_web.jar non viene eliminato. Tale file non è valido su un server WAS V6 e potrebbe causare problemi durante la rigenerazione degli oggetti client nel progetto Web (se è stata seguita la procedura riportata nella sezione "Migrazione delle risorse JavaServer Faces con i componenti Faces Client" della guida alla migrazione).
Per evitare questi problemi, eliminare questo file JAR dalla cartella lib, Dopo averlo eliminato, aprire il file web.xml per il progetto Web e rimuovere il tag taglib che fa riferimento al file JAR. È possibile rimuoverlo sia dalla pagina Variabili che dalla pagina Origine dell'editor del descrittore di distribuzione Web. L'URI per questo taglib è http://www.ibm.com/websphere/wdo/core. Infine, selezionare il progetto Web nella vista Esplora progetti, quindi selezionare Proprietà nel menu a comparsa. Selezionare Percorso generazione Java, quindi dalla pagina delle librerie rimuovere tutte le voci del percorso classi WDO_EMF_JARS_PATH/*.
Durante la creazione di una pagina JSP con un record relazionale che utilizza una generazione chiavi automatica per un server V5.1, potrebbe verificarsi un errore simile a quello riportato di seguito:
2 cvc-complex-type.2.4.d: È stato rilevato contenuto non valido che inizia con l'elemento 'tables'. Non è previsto alcun elemento secondario in questo punto.
Questo messaggio di errore non può essere ignorato.
Se si esegue WebSphere Application Server come servizio con l'autenticazione predefinita (esecuzione come utente collegato), e si tenta di stabilire una connessione a DB2 all'interno di un'applicazione Web senza fornire un nome utente e password, è possibile che venga restituito il seguente messaggio di errore:
java.sql.SQLException: [IBM][CLI Driver] SQL0567N "SYSTEM" non è un ID autorizzato valido. SQLSTATE=42602 DSRA0010E: Stato SQL = 42602, Codice di errore = -567
Per evitare questo problema, fornire un ID utente e una password all'applicazione o impostare WAS (ad esempio, fornire ID utente e password) in modo che venga eseguito esplicitamente come un account utente che ha accesso al DB2 installato.
Se si chiude un JSP contenente dati non finali (modifiche non assegnate) dopo la richiesta, si salva il JSP, le modifiche non assegnate ai file di configurazione WDO/SDO potrebbero non essere salvate.
Per evitare il problema, dopo la configurazione di un record relazionale o un elenco record, salvare il JSP premendo CRTL+S o facendo clic su File-->Salva.
Il problema si verifica per le applicazioni WDO create per l'esecuzione sul server Websphere V51, ma che vengono migrate per l'esecuzione sul server Websphere V60. In questo scenario, quando la pagina Faces dispone di un record o un elenco di record con più di un filtro, la pagina potrebbe restituire la seguente eccezione durante l'esecuzione sul server:
java.lang.ArrayIndexOutOfBoundsException: 1 a org.eclipse.emf.ecore.impl.DynamicEObjectImpl.dynamicGet(DynamicEObjectImpl.java:192) a org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$InternalSettingDelegateSingleData.dynamicGet(EStructuralFeatureImpl.java:1758) a org.eclipse.emf.ecore.impl.BasicEObjectImpl.eDynamicGet(BasicEObjectImpl.java:485) a org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java:476)e a org.eclipse.emf.ecore.impl.BasicEObjectImpl.eGet(BasicEObjectImpl.java(Compiled Code)) a com.ibm.etools.webtools.sdo.runtime.internal.MapDataObjectImpl.getValue(MapDataObjectImpl.java:197) a com.ibm.etools.webtools.sdo.runtime.internal.MapDataObjectImpl.put(MapDataObjectImpl.java:162) a pagecode.PageCodeBase.resolveParams(PageCodeBase.java:189)
Il problema si trova nell'oggetto del parametro del mediator.
Per risolvere il problema, è necessario impostare correttamente l'oggetto del parametro del mediator. Per effettuare questa operazione, modificare il metodo getList o getRecord
da:
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; }
a: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; }
Si noti il frammento di codice che imposta l'oggetto del parametro.
Le origini dati non verranno configurate correttamente sul server durante Esegui sul server se è stato selezionato un server predefinito. Affinché l'origine dati sia impostata correttamente, non selezionare un server predefinito. Una volta pubblicata correttamente l'applicazione, è possibile selezionare un server predefinito fino a quando non vengono effettuate le modifiche alle origini dati.
L'azione Ridenomina schema per un record/elenco non aggiorna il nome dello schema della tabella della chiave univoca.
Per risolvere questo problema in modo alternativo, ricercare il file xml che memorizza la query per il record/elenco e aggiornare il nome dello schema della tabella della chiave univoca.
Visualizza il file Readme principale