Revisione del codice Java

Nella serie di regole Revisione del codice Java, la categoria Migrazione della versione di WebSphere contiene le regole per la migrazione da WebSphere Application Server versione 5.1, 6.0, 6.1, 7.0, 8.0 e 8.5.5 alla versione 8.0, 8.5.5 o 9.0. Per imparare a ottenere maggiori informazioni su una regola, consultare Visualizzazione di una guida dettagliata.

Le correzioni rapide sono disponibili laddove possibile. Le regole senza correzioni rapide contrassegnano le violazioni della regola per consentire all'utente d valutarne l'utilizzo e di migrare il codice manualmente.

Tabella 1. Migrazione da V5.1 a V6.0
Nome regola Descrizione regola Correzione automatica
Ricerca di una modifica del comportamento sul tipo di contenuto predefinito di ServletResponse

Il tipo di contenuto predefinito per HttpServletResponse è stato modificato da "text/html" a "text/plain" per i servlet che non impostano il tipo di contenuto.

No
Ricerca la modifica del funzionamento negli URL contenenti un segno più

Questa regola contrassegna le chiamate nel codice Java che creano degli URL (Uniform Resource Locator) che contengono un carattere più ("+") nell'URI che non fa parte dei parametri della query. Il carattere più ("+") è riservato solo nella parte di stringa della query dell'URL.

No
Verificare la modalità di funzionamento prevista sul metodo ServletResponse sendRedirect()

L'implementazione WebSphere Application Server del metodo ServletResponse.sendRedirect() omette le informazioni sul percorso fino all'ultima barra. Con una nuova proprietà personalizzata, questa modalità di funzionamento può essere corretta.

No
Utilizzare una barra iniziale sulle richieste ServletContext getResource() e getResourceAsStream()

Questa regola contrassegna le chiamate ai metodi ServletContext.getResource() e ServletContext.getResourceAsStream() in cui non è possibile determinare facilmente se il valore stringa passato sul metodo contenga una barra iniziale (/) come richiesto dalla specifica del servlet.

No
Non utilizzare funzioni del componente dell'attività rimosse

Questa regola contrassegna l'utilizzo delle interfacce e delle classi di componente di attività che erano state rimosse in WebSphere Application Server V6.0.

No
Non utilizzare funzioni dell'attività Ant rimosse

Questa regola contrassegna l'utilizzo delle interfacce e delle classi di attività Ant che erano state rimosse in WebSphere Application Server V6.0.

No
Non utilizzare funzioni del bean asincrono rimosse

Questa regola contrassegna l'utilizzo delle interfacce e delle classi di bean asincrono che erano state rimosse in WebSphere Application Server V6.0.

No
Non utilizzare le funzioni del pool di oggetti rimosse

Questa regola contrassegna l'utilizzo delle classi di pool di oggetti che erano state rimosse in WebSphere Application Server V6.0.

No
Non utilizzare le funzioni RAS rimosse

Questa regola contrassegna l'utilizzo delle interfacce e delle classi RAS che erano state rimosse in WebSphere Application Server V6.0.

No
Non utilizzare le funzioni dello scheduler che sono state rimosse

Questa regola contrassegna l'utilizzo delle interfacce e delle classi di scheduler che erano state rimosse in WebSphere Application Server V6.0.

No
Non utilizzare le funzioni di sicurezza che sono state rimosse

Questa regola contrassegna l'utilizzo delle interfacce e delle classi di sicurezza che erano state rimosse in WebSphere Application Server V6.0.

No
Non utilizzare la classe EarUtils rimossa

Questa regola contrassegna l'utilizzo della classe EarUtils che era stata rimossa in WebSphere Application Server V6.0.

No
Non utilizzare il metodo setJMSPriority() che era stato rimosso

Questa regola contrassegna l'utilizzo del metodo setJMSPriority dall'interfaccia com.ibm.websphere.scheduler.MessageTaskInfo. Questo metodo era stato dichiarato obsoleto nella release di Websphere Application Server V6.0 ed era stato sostituito dal metodo getJMSPriority.

No
Non utilizzare le funzioni del profilo utente rimosse

Questa regola contrassegna l'utilizzo delle interfacce e delle classi di profilo utente che erano state rimosse in WebSphere Application Server V6.0.

No

Tabella 2. Migrazione da V6.0 a V6.1
Nome regola Descrizione regola Correzione automatica
Controllare la modifica della modalità di funzionamento sul metodo EJBContext.setRollbackOnly()

Una chiamata a setRollbackOnly in uno specifico scenario può produrre un risultato differente sulle release di WebSphere Application Server antecedenti alla V6.0.2.

No
Non utilizzare le funzioni Common Connector Framework che sono state rimosse

Questa regola contrassegna l'utilizzo dei package di API Common Connector Framework che erano stati rimossi in WebSphere Application Server V6.1.

No
Non utilizzare il metodo WebSphere Ant StopServer.setHost() che è stato rimosso

Questa regola contrassegna l'utilizzo del metodo rimosso setHost(String s) nella classe com.ibm.websphere.ant.tasks.StopServer.

No
Utilizzare l'implementazione JDOM open source invece dell'implementazione rimossa

Questa regola contrassegna l'utilizzo dei package JDOM che erano stati rimossi in WebSphere Application Server V6.1.

No
Utilizzare l'implementazione Mozilla Rhino open source invece dell'implementazione rimossa

Questa regola contrassegna l'utilizzo dei package Rhino che erano stati rimossi in WebSphere Application Server V6.1.

No
Utilizzare l'interfaccia UserRegistry al posto dell'interfaccia CustomRegistry

Questa regola contrassegna l'utilizzo dell'interfaccia CustomRegistry che era stata rimossa in WebSphere Application Server V6.1.

No

Tabella 3. Migrazione da V6.1 a V7.0
Nome regola Descrizione regola Correzione automatica
Ricerca di una modifica del comportamento nei requisiti di memoria della porta dinamica JAX-WS

Questa regola contrassegna l'utilizzo delle porte dinamiche JAX-WS create utilizzando il metodo javax.xml.ws.Service addPort. Questa modifica della modalità di funzionamento può aumentare i requisiti di memoria.

No
Ricerca della classe di inizializzazione della factory di contesto JAXB

Questa regola contrassegna il metodo JAXBContext newInstance() perché il metodo di factory di contesto è cambiato rispetto alle versioni precedenti di JAXB.

No
Utilizzare solo le annotazioni JAX-WS in Java EE 5 o successivo

Questa regola rileva l'utilizzo delle annotazioni AX-WS nei progetti enterprise precedenti a EE 5.

No
Non utilizzare l'interfaccia che è stata rimossa

Questa regola contrassegna l'interfaccia com.ibm.websphere.cache.DistributedLockingMap rimossa.

No
Non utilizzare i costruttori InvalidationEvent o ChangeEvent che sono stati rimossi

Questa regola contrassegna l'utilizzo dei costruttori rimossi nelle classi com.ibm.websphere.cache.InvalidationEvent o com.ibm.websphere.cache.ChangeEvent. Il nuovo costruttore dispone di un campo aggiuntivo.

No
Non utilizzare la classe SequeLinkDataStoreHelper rimossa

Questa regola contrassegna l'utilizzo della classe com.ibm.websphere.rsadapter.SequeLinkDataStoreHelper.

No
Non utilizzare la classe WebSphere UserTransactionWrapper che è stata rimossa

Non utilizzare la classe com.ibm.websphere.servlet.session. UserTransactionWrapper perché è stata rimossa. Memorizzare una UserTransaction direttamente nella sessione HTTP senza eseguire il wrapping nella classe rimossa.

No
Non utilizzare la classe WSConnectJDBCDataStoreHelper che è stata rimossa

Questa regola contrassegna l'utilizzo dlla classe com.ibm.websphere.rsadapter.WSConnectJDBCDataStoreHelper e del campo com.ibm.websphere.rsadapter.DataStoreHelper.WSCONNECTJDBC_HELPER che erano stati rimossi.

No
Non utilizzare le API di personalizzazione del gateway dei servizi web che sono state rimosse

Non utilizzare le API di personalizzazione dei servizi web. La regola contrassegna l'utilizzo del package com.ibm.wsgw.beans.*.

No
Utilizzare i filtri del servlet Java EE invece della classe di filtro del servlet WebSphere.

Non utilizzare le classi com.ibm.websphere.servlet.filter perché sono state rimosse. Invece, utilizzare le classi javax.servlet.filter.

No
Utilizzare la classe ConnectJDBCDataStoreHelper invece della classe DataDirectDataStoreHelper

Non utilizzare l'oggetto com.ibm.websphere.rsadapter.DataDirectDataStoreHelper perché è stato rimosso.

La correzione rapida modifica il codice per utilizzare invece com.ibm.websphere.rsadapter.ConnectJDBCDataStoreHelper.

No
Utilizzare la classe MicrosoftSQLServerDataStoreHelper invece della classe MSSQLDataStoreHelper

Non utilizzare la classe com.ibm.websphere.rsadapter.MSSQLDataStoreHelper perché è stata rimossa.

La correzione rapida modifica il codice per utilizzare invece com.ibm.websphere.rsadapter.MicrosoftSQLServerDataStoreHelper.

No

Tabella 4. Migrazione da V7.0 a V8.0
Nome regola Descrizione regola Correzione automatica
Ricerca una modifica del funzionamento per la presenza di EJB in un modulo web

Questa regola contrassegna le annotazioni EJB nei file Java se questi file si trovano in un modulo web con la versione 2.5 o successive.

No
Ricerca una modifica del funzionamento nell'eredità ApplicationException

Questa regola contrassegna l'annotazione EJB ApplicationException che non ha l'attributo inherited impostato. L'attributo inherited è stato aggiunto in EJB 3.1 e ha modificato la modalità di funzionamento predefinita delle applicazioni EJB 3.0.

No
Ricerca di una modifica del comportamento nell'insieme di azioni SOAP nei messaggi in uscita

Questa regola contrassegna le applicazioni client di invio JAX-WS che possono rilevare una modifica del funzionamento nell'impostazione dell'azione SOAP nei messaggi in uscita

No
Ricerca di una modifica del comportamento nei metodi SOAPMessage

Questa regola contrassegna le chiamate ai metodi SOAPMessage getSOAPHeader() e getSOAPBody() che ora generano un'eccezione invece di restituire null se la rispettiva intestazione o il rispettivo corpo non sono presenti.

No
Ricerca di una modifica del comportamento nelle stringhe e dei codici di errore SOAP dei servizi Web

Questa regola contrassegna le applicazioni che richiamano le stringhe e i codici di errore JAX-WS e JAX-RPC SOAP perché parte del contenuto è stata modificata nella versione 8.0.

No
Ricerca di una modifica del comportamento nel metodo EntityManager refresh(Object entity)

Questa regola contrassegna il metodo EntityManager.refresh() perché la modalità di funzionamento di questo metodo è cambiata.

No
Ricerca di una modifica del comportamento nel metodo OpenJPAEntityManager detach(T pc)

Questa regola contrassegna il metodo OpenJPAEntityManager detach(T pc). Il tipo di ritorno del metodo è stato modificato per supportare la specifica JPA 2.0.

La correzione rapida modifica il metodo detach() in detachCopy().

No
Ricerca di una modifica del comportamento nei metodi SipFactory

Questa regola contrassegna determinati metodi SipFactory utilizzando un parametro to, from oppure addr stringa per cui è presente una modifica della modalità di funzionamento.

No
Ricerca di una modifica del comportamento su alcune operazioni dell'MBean del server

Questa regola contrassegna l'utilizzo delle operazioni di MBean del server modificate getComponentVersion, getEFixVersion, getPTFVersion, getExtensionVersion, getVersionsForAllComponents e getVersionsForAllEFixesstartTransports.

No
Ricerca di una modifica del comportamento nel metodo clone SIP URI

Questa regola contrassegna il metodo clone SIP UURI perché potrebbe generare un'eccezione se l'applicazione è stata compilata utilizzando WebSphere Application Server V7.0 o con le interfacce SIP Servlets 1.0.

Per risolvere l'eccezione, ricompilare l'applicazione utilizzando WebSphere Application Server V7.0 e il Feature Pack CEA o WebSphere Application Server V8.0 e versioni successive.

No
Non utilizzare l'API SOAP Apache rimossa

Questa regola contrassegna l'utilizzo delle classi rimosse nei package org.apache.soap e com.ibm.soap.

No
Non utilizzare il metodo rimosso getCause() da ServletErrorReport

Questa regola contrassegna il metodo getCause() rimosso nella classe com.ibm.websphere.servlet.error. ServletErrorReport .

No
Utilizza l'helper Oracle 11g invece delle versioni precedenti

Questa regola contrassegna l'utilizzo degli helper e campi Oracle 10g. Solo la versione 8.0 supporta l'helper e il driver JDBC Oracle 11g .

La correzione rapida modifica il codice per utilizzare l'helper Oracle 11g dopo aver confermato che la configurazione di runtime è stata modificata.

No

Tabella 5. Migrazione da V7.0 a V8.0 o V8.5
Nome regola Descrizione regola Correzione automatica
Ricerca di una modifica del comportamento nelle applicazioni JSF (Java Server Faces)

Questa regola contrassegna le applicazioni JSF (Java Server Faces) perché l'implementazione predefinita per il contenitore JSF è stata modificata in WebSphere V8.0.

No

Tabella 6. Migrazione V8.0, V8.5 e V9.0
Nome regola Descrizione regola Correzione automatica
L'API client Apache HTTP è stata rimossa

Questa regola contrassegna l'utilizzo dell'API client Apache HTTP che è stata rimossa in WebSphere Application Server V8.0, V8.5 e V9.0.

No

Tabella 7. Migrazione da V8.0 a V8.5
Nome regola Descrizione regola Correzione automatica
Ricerca di una modifica del comportamento nella strategia a cascata JPA

Questa regola contrassegna i progetti che utilizzano le relazioni di entità JPA che utilizzano tipi di cascata PERSIST, MERGE o ALL perché esiste una possibile modifica del funzionamento in WebSphere Application Server V8.5. Esiste una regola XML corrispondente per rilevare questa modifica della modalità di funzionamento.

No

Tabella 8. Migrazione da V8.5 a V9.0
Nome regola Descrizione regola Correzione automatica
SCA è stata rimossa

Questa regola contrassegna l'utilizzo di SCA (Service Component Architecture) nelle applicazioni. SCA è stato rimosso in WebSphere Application Server V9.0.

No
L'API CDI OpenWebBeans è stata rimossa

Questa regola contrassegna l'utilizzo dell'API Apache OpenWebBeans che è stata rimossa in WebSphere Application Server V9.0.

No
L'applicazione di sistema CEA commsvc.ear è stata rimossa

Questa regola contrassegna l'utilizzo dell'interfaccia REST CEA (Communications Enabled Applications) REST che è stata fornita dall'applicazione di sistema CEA commsvc.ear. L'applicazione di sistema commsvc.ear è stata rimossa in WebSphere Application Server V9.0.

No
L'API Common Event Infrastructure è stata rimossa

Questa regola contrassegna l'utilizzo dei package dall'API Common Event Infrastructure che è stata rimossa.

No
Il motore JSF SunRI è stato rimosso

Questa regola contrassegna i riferimenti al package com.sun.faces.

No