Keine JBoss-spezifischen JNDI-Eigenschaftswerte verwenden

Sie müssen JBoss-spezifische Benennungseigenschaften, die beim Abrufen des IntialContext in Ihrer Anwendung verwendet werden, entfernen oder ersetzen. Das Migrationstool scannt Java- und Eigenschaftendateien auf die Eigenschaftswerte org.jnp.interfaces.NamingContextFactory, jnp://.* und org.jboss.naming.*. Wenn eine Anwendung beispielsweise die folgenden Eigenschaften angibt, markiert das Tool den roten Text:

Liberty

Java-Dateien

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. Verwenden Sie einen leeren Konstruktor, sofern keine anderen Benennungseigenschaften definiert sind.

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", "org.jnp.interfaces.NamingContextFactory");
ht.put("java.naming.provider.url", "jnp://localhost:1099");
ht.put("java.naming.factory.url.pkgs", "org.jboss.naming");

InitialContext ctx = new InitialContext(ht);
}

Für Liberty entfernen Sie nicht benötigte Eigenschaften manuell.


import javax.naming.InitialContext;
...
void main( String[] args ) {
InitialContext ctx = new InitialContext();
}

Eigenschaftendateien

Das Tool markiert nicht nur Java-Dateien, sondern auch Eigenschaftendateien für die zuvor aufgelisteten JBoss-spezifischen Eigenschaften. Für Liberty müssen Sie diese Eigenschaften aus der Datei entfernen.

WebSphere Application Server Traditional

Java-Dateien

Bei einer Migration auf WebSphere Application Server Traditional werden dieselben JBoss-Eigenschaften markiert, die zuvor erwähnt wurden. Es gibt eine Schnellkorrektur im Quellenscanner für markierte Java-Dateien, die die Werte von JBoss-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", "org.jnp.interfaces.NamingContextFactory");
ht.put("java.naming.provider.url", "jnp://localhost:1099");
ht.put("java.naming.factory.url.pkgs", "org.jboss.naming");

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");
ht.put("java.naming.factory.url.pkgs", "com.ibm.ws.naming");

InitialContext ctx = new InitialContext(ht);
}

Eine weitere Option bei der Migration auf WebSphere Application Server Traditional ist das Entfernen der Eigenschaften und die Verwendung des leeren InitialContext()-Konstruktors.

Beachten Sie, dass die im Quellenscanner verfügbare Schnellkorrektur nur angewendet wird, wenn org.jboss.naming, wie im vorherigen Beispiel gezeigt, ohne abschließende Zeichenfolge angegeben wird. Wenn dem org.jboss.naming-Wert eine zusätzliche Zeichenfolge folgt, markiert die Regel den Wert, wendet die Schnellkorrektur aber nicht an. Diese Eigenschaft wird beispielsweise markiert, aber nicht geändert: java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces.


Eigenschaftendateien

Das Tool markiert nicht nur Java-Dateien, sondern auch Eigenschaftendateien für die zuvor aufgelisteten JBoss-spezifischen Eigenschaften. Es wird jedoch keine Schnellkorrektur für die Eigenschaftendateien bereitgestellt. Für WebSphere Application Server Traditional müssen Sie die Eigenschaften manuell aus der Datei entfernen oder deren Werte in die Werte von WebSphere-Benennungseigenschaften ändern.