Sie müssen WebLogic-spezifische Benennungseigenschaften, die beim Abrufen des IntialContext in Ihrer Anwendung verwendet werden, entfernen oder ersetzen.
Das Migrationstool scannt Java-, XML- und Eigenschaftendateien nach Eigenschaftswerten:
weblogic.jndi.WLInitialContextFactory, t3://.* und t3s://*.
Wenn eine Anwendung beispielsweise die folgenden Eigenschaften angibt, markiert das Tool den roten Text:
Wenn Sie Ihre Anwendung auf Liberty umstellen, geben Sie in den Eigenschaften, die an den Konstruktor
InitialContext übergeben werden, keine Ausgangskontextfactory und keine Provider-URL an.
Sofern keine anderen Benennungseigenschaften definiert werden, verwenden Sie den leeren Konstruktor.
Das folgende Beispiel veranschaulicht Anwendungscode, der von dieser Regel bei der Migration auf Liberty markiert wird:
|
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); } |
Entfernen Sie nicht benötigte Eigenschaften manuell.
|
import javax.naming.InitialContext; ... void main( String[] args ) { InitialContext ctx = new InitialContext(); } |
Das Tool markiert nicht nur Java-Dateien, sondern auch XML-Dateien, die WebLogic-Eigenschaftswerte
enthalten. Für Liberty müssen die Eigenschaften entfernt werden, damit die InitialContext-Standardinitialisierungswerte
verwendet werden.
Das Tool markiert nicht nur Java- und XML-Dateien, sondern auch Eigenschaftendateien, die WebLogic-Eigenschaftswerte enthalten. Für Liberty müssen die Eigenschaften entfernt werden.
Bei einer Migration auf WebSphere Application Server Traditional werden dieselben WebLogic-Eigenschaften markiert, die zuvor erwähnt wurden. Es gibt eine Schnellkorrektur im Quellenscanner für Java-Dateien, die die Werte von WebLogic-Benennungseigenschaften in Werte ändert, die in WebSphere Application Server Traditional funktionieren.
Das folgende Beispiel veranschaulicht Anwendungscode, der von dieser Regel bei der Migration auf WebSphere Application Server Traditional markiert wird:
|
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); } |
Nach Ausführung der Java-Schnellkorrektur für WebSphere Application Server Traditional wird der Code aus dem vorherigen Beispiel wie folgt migriert:
|
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); } |
Hinweis: Die Schnellkorrektur verwendet den Standard-Bootstrap-Port 2809 für alle T3-URLs, einschließlich der SSL-URLs 't3s://'. Überprüfen Sie Ihre Servereinstellungen und stellen Sie sicher, dass für jede URL der richtige Port verwendet wird. Weitere Informationen enthält der Artikel Einstellungen für Portnummern in WebSphere Application Server Traditional.
Eine weitere Option bei der Migration auf WebSphere Application Server Traditional ist das Entfernen der Eigenschaften und die Verwendung des leeren
InitialContext()-Konstruktors.
Warnung: Die Schnellkorrektur passt nur Literale an. Wenn eine URL mit Variablen erstellt wird, muss sie manuell migriert werden.
Beispielvariablen vor der Schnellkorrektur:|
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); } |
Wie Sie sehen, wurde die Zeichenfolgevariable port nicht geändert. Stellen Sie sicher, dass alle derartigen Variablen migriert werden.
Das folgende Beispiel zeigt ähnliche Änderungen für XML-Code.
XML-Code vor der Ausführung der Schnellkorrektur:|
<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/"/> |
Eigenschaftendateien werden vom Migrationstool überprüft. Naming-Factory-Eigenschaften und Providereigenschaften werden dagegen nicht von einer Schnellkorrektur migriert. Für WebSphere Application Server Traditional müssen Sie die Eigenschaften entfernen oder deren Werte in die Werte von WebSphere-Benennungseigenschaften ändern.
Lesen Sie hierzu auch die Regel Portierbare JNDI-Eigenschaftswerte verwenden.