Non utilizzare i valori delle proprietà JNDI specifici di WebLogic o il protocollo t3

È 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:

Liberty

File Java

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();
}

File XML

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.

File delle proprietà

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.

WebSphere Application Server traditional

File Java

Durante la migrazione a WebSphere Application Server traditional, verranno contrassegnate le stesse proprietà WebLogic citate in precedenza. Verrà fornita una correzione automatica per i file Java che cambia i valori delle proprietà di denominazione di WebLogic in valori che funzionano in WebSphere Application Server tradizionale:

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 correzione automatica per WebSphere Application Server traditional, il codice sarà 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 automatica utilizzerà la porta di bootstrap predefinita, 2809, per tutti gli URL di 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.

Attenzione : La correzione automatica regola solo i letterali. Se viene creato un URL utilizzando le variabili, sarà necessario migrarlo manualmente.

Esempio di variabile prima:

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);
}

Esempio di variabile dopo:

void main( String[] args ) {
Hashtable ht = new Hashtable();

...

String port = "7001";
ht.put("java.naming.provider.url", "corbaloc:iiop:hostlocale:" + porta);

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 :

< nome proprietà = "java.naming.factory.initial" value="weblogic.jndi.WLInitialContextFactory" />

< nome proprietà= "java.naming.provider.url" valore="t3://localhost:7001/" />

Codice XML dopo:

< nome proprietà= "java.naming.factory.initial" value="com.ibm.websphere.naming.WsnInitialContextFactory"/>

< nome proprietà= "java.naming.provider.url" value="corbaloc:iiop:localhost:2809/"/>

File delle proprietà

Mentre lo strumento di migrazione controlla i file delle proprietà, le proprietà dei factory di denominazione e dei provider non vengono migrate da una correzione automatica. 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.