È necessario rimuovere o sostituire le proprietà di denominazione specifiche di WebLogic utilizzate durante l'acquisizione di IntialContext nella propria applicazione.
Lo strumento di migrazione esegue la scansione dei file Java, XML e delle proprietà per ricercare i valori delle proprietà:
weblogic.jndi.WLInitialContextFactory, t3://.* e t3s://*.
Ad esempio, se un'applicazione specifica le seguenti proprietà, lo strumento dovrebbe contrassegnare il testo rosso:
Durante lo spostamento dell'applicazione in Liberty, non specificare una factory di contesto iniziale o un
URL del provider nelle proprietà passate al costruttore InitialContext.
Utilizzare il costruttore vuoto a meno che non vengano impostate altre proprietà di denominazione.
L'esempio riportato di seguito illustra il codice dell'applicazione che verrà contrassegnato da questa regola durante la migrazione verso Liberty:
|
import java.util.Hashtable; import javax.naming.InitialContext; ... void main( String[] args ) { Hashtable ht = new Hashtable(); ht.put("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory"); ht.put("java.naming.provider.url", "t3://localhost:7001"); InitialContext ctx = new InitialContext(ht); } |
Rimuovere manualmente le proprietà non necessarie:
|
import javax.naming.InitialContext; ... void main( String[] args ) { InitialContext ctx = new InitialContext(); } |
Oltre a contrassegnare i file java, lo strumento contrassegna i file xml che contengono valori delle
proprietà WebLogic. Per Liberty, le proprietà devono essere rimosse per utilizzare i valori di inizializzazione
InitialContext predefiniti.
Oltre a contrassegnare i file java ed xml, lo strumento contrassegna i file delle proprietà che contengono i valori delle proprietà WebLogic. Per Liberty, le proprietà devono essere rimosse.
Durante la migrazione a WebSphere Application Server traditional, verranno contrassegnate le stesse proprietà WebLogic citate in precedenza. Nello scanner di origine, è disponibile una correzione rapida per i file Java che modifica i valori delle proprietà di denominazione WebLogic in valori che funzionano in WebSphere Application Server traditional:
L'esempio riportato di seguito illustra il codice dell'applicazione che verrà contrassegnato da questa regola durante la migrazione a WebSphere Application Server traditional:
|
import java.util.Hashtable; import javax.naming.InitialContext; ... void main( String[] args ) { Hashtable ht = new Hashtable(); ht.put("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory"); ht.put("java.naming.provider.url", "t3s://localhost:7001"); InitialContext ctx = new InitialContext(ht); } |
Utilizzando lo stesso esempio mostrato in precedenza, dopo aver eseguito la soluzione rapida Java per WebSphere Application Server traditional, il codice verrà migrato come mostrato:
|
import java.util.Hashtable;; import javax.naming.InitialContext;; ... void main( String[] args ) { Hashtable ht = new Hashtable(); ht.put("java.naming.factory.initial", "com.ibm.websphere.naming.WsnInitialContextFactory"); ht.put("java.naming.provider.url", "corbaloc:iiop:localhost:2809"); InitialContext ctx = new InitialContext(ht); } |
Nota: la correzione rapida utilizza la porta bootstrap predefinita, 2809, per tutti gli URL t3, compresi gli URL SSL 't3s://'. Controllare le impostazioni del server per accertarsi che per ciascun URL sia utilizzata la porta corretta. Per ulteriori informazioni, fare riferimento all'articolo Port Number Settings for WebSphere Application Server traditional.
Un'altra opzione disponibile durante il passaggio a WebSphere Application Server traditional consiste nella rimozione
delle proprietà e nell'utilizzo del costruttore InitialContext() vuoto.
Avvertenza: la correzione rapida regola solo i letterali. Se viene creato un URL utilizzando le variabili, sarà necessario migrarlo manualmente.
Esempio di variabile prima della correzione rapida:|
void main( String[] args ) { Hashtable ht = new Hashtable(); ... String port = "7001"; ht.put("java.naming.provider.url", "t3://localhost:" + port); InitialContext ctx = new InitialContext(ht); } |
|
void main( String[] args ) { Hashtable ht = new Hashtable(); ... String port = "7001"; ht.put("java.naming.provider.url", "corbaloc:iiop:localhost:" + port); InitialContext ctx = new InitialContext(ht); } |
Notare che la variabile stringa port non è stata modificata. Verificare che tutte le variabili di questo tipo vengano migrate.
L'esempio riportato di seguito illustra modifiche simili applicate al codice XML.
Codice XML prima di eseguire la correzione rapida:|
<property name="java.naming.factory.initial" value="weblogic.jndi.WLInitialContextFactory"/> <property name="java.naming.provider.url" value="t3://localhost:7001/"/> |
|
<property name="java.naming.factory.initial" value="com.ibm.websphere.naming.WsnInitialContextFactory"/> <property name="java.naming.provider.url" value="corbaloc:iiop:localhost:2809/"/> |
Mentre lo strumento di migrazione esegue il controllo dei file delle proprietà, le proprietà del provider e della factory di denominazione non vengono migrate da una correzione rapida. Per WebSphere Application Server traditional, rimuovere le proprietà o modificarle nei valori delle proprietà di denominazione WebSphere.
Vedere anche la regola Utilizza valori proprietà JNDI portabili.