Durante il trascinamento di elementi dalla vista Dati di pagina ad una pagina che contiene 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 la 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, generando così 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, generalmente Informix e Sybase, viene creata una connessione di gestione driver e si presenta il problema appena descritto.
Affinché la connessione di gestione driver funzioni, sarà necessario aggiungere manualmente i percorsi jar del driver al percorso classi del server. Questa operazione può essere effettuata eseguendo la Console di gestione del server ed aggiungendo le voci del percorso classi in Server->Server di applicazione-><Nome_del_server>->Gestione Java e processi->Definizione del processo->Java Virtual Machine->Percorso classi.
Attualmente il prodotto non genera un metodo di aggiornamento per ciascun elenco di 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. Quindi selezionare Percorso di generazione Java e dalla pagina 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 è valido e può essere ignorato.
Se si esegue WebSphere Application Server come servizio con l'autenticazione predefinita (esecuzione come utente collegato) e si desidera stabilire una connessione a DB2 in una applicazione Web senza fornire nome utente e password, è possibile che si verifichi un errore simile al seguente:
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 (fornire ID utente e password) in modo che venga eseguito esplicitamente come un account utente che ha accesso al DB2 installato.
Quando viene chiusa una JSP contenente dati non finali, e una volta richiesto, si seleziona di salvare la JSP, le modifiche non salvate ai file di configurazione WDO/SDO potrebbero non essere salvate.
Per evitare questo problema, dopo aver configurato un record relazionale o elenco record, salvare la JSP premendo CRTL+S o facendo clic su File-->Salva.
Questo problema si verifica nelle applicazioni WDO create per essere eseguite sul server Websphere V51 ma che vengono migrate per essere eseguite sul server Websphere V60. In questo scenario, quando la pagina faces contiene un record o un elenco record con più proposizione filtri, la pagina potrebbe attivare la seguente eccezione quando eseguita sul server:
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)
Il problema è causato dall'oggetto parametro del mediatore.
Per risolverlo, impostare correttamente l'oggetto parametro modificando 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; }
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; }
Tenere presente il frammento di codice che imposta l'oggetto parametro.
Le origini dati non verranno configurate sul server correttamente durante l'operazione Esegui su server se viene selezionato un server predefinito. Per assicurarsi che l'origine dati sia impostata correttamente, non selezionare un server predefinito. Dopo aver pubblicato correttamente l'applicazione, selezionare un server predefinito solo se non si desidera apportare altre modifiche alle origini dati.
L'azione di ridenominazione schema per il record/elenco non aggiorna i nomi di schema di tabella chiavi univoche.
Per risolvere questo problema, individuare il file xml che memorizza la query per il record/elenco ed aggiornare il nome dello schema di tabella chiavi univoche.
Visualizza il file Readme principale