Специфичные для JBoss свойства имен, используемые при получении IntialContext в приложении, необходимо удалить или заменить.
Инструмент миграции проверяет файлы свойств и файлы Java на наличие следующих
значений свойств: org.jnp.interfaces.NamingContextFactory,
jnp://.* и org.jboss.naming.*.
Например, если в приложении заданы следующие свойства, инструмент отметит красный текст:
При переносе приложения в Liberty не следует задавать URL провайдера или
фабрику начального контекста в свойствах, передаваемых в конструктор
InitialContext.
Используйте пустой конструктор, если не нужно настраивать никакие другие свойства имен.
Ниже приведен пример кода, который будет отмечен этим правилом при переносе приложения в Liberty:
|
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); } |
В случае Liberty вручную удалите ненужные свойства:
|
import javax.naming.InitialContext; ... void main( String[] args ) { InitialContext ctx = new InitialContext(); } |
Инструмент отмечает указанные выше свойства JBoss не только в файлах Java, но и в файлах свойств. В случае Liberty нужно удалить эти свойства из файла.
При переносе приложения в WebSphere Application Server traditional отмечаются все те свойства JBoss, которые были указаны выше. Для отмеченных файлов Java в сканере исходного кода предусмотрено быстрое исправление, изменяющее значения свойств naming JBoss на значения, допустимые для WebSphere Application Server traditional:
Ниже приведен пример кода, который будет отмечен этим правилом при переносе приложения в 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", "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); } |
Применение быстрого исправления Java для 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", "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); } |
Другой альтернативой при переносе приложения в WebSphere Application
Server traditional является удаление свойств и использование пустого конструктора
InitialContext().
Обратите внимание, что быстрое исправление из сканера исходного кода применяется лишь в
том случае, если org.jboss.naming не имеет дополнительной строки в конце,
как показано в предыдущем примере. Если
после значения org.jboss.naming находится дополнительная строка,
то оно будет отмечено правилом, но к нему не будет применено быстрое исправление. Например, следующее свойство будет отмечено, но не будет изменено:
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces.
Инструмент отмечает указанные выше свойства JBoss не только в файлах Java, но и в файлах свойств. В случае WebSphere Application Server traditional вручную удалите эти свойства из файла или измените их на значения свойств именования WebSphere.