Специфичные для WebLogic свойства имен, используемые при получении IntialContext в приложении, необходимо удалить или заменить.
Инструмент миграции проверяет файлы Java, XML и файлы свойств и находит
следующие значения свойств: weblogic.jndi.WLInitialContextFactory,
t3://.* и t3s://*.
Например, если в приложении заданы следующие свойства, инструмент отметит красный текст:
При переносе приложения в 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", "weblogic.jndi.WLInitialContextFactory"); ht.put("java.naming.provider.url", "t3://localhost:7001"); InitialContext ctx = new InitialContext(ht); } |
Вручную удалите ненужные свойства:
|
import javax.naming.InitialContext; ... void main( String[] args ) { InitialContext ctx = new InitialContext(); } |
Инструмент отмечает не только файлы java, но и файлы xml, содержащие значения
свойств WebLogic. В случае Liberty эти свойства необходимо удалить и использовать значения инициализации InitialContext по умолчанию.
В дополнение к файлам java и xml инструмент отмечает файлы свойств, содержащие значения свойств WebLogic. В случае Liberty необходимо удалить эти свойства.
При переносе приложения в WebSphere Application Server traditional отмечаются все те свойства WebLogic, которые были указаны выше. Для файлов Java в сканере исходного кода предусмотрено быстрое исправление, изменяющее значения свойств naming WebLogic на значения, допустимые для 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", "weblogic.jndi.WLInitialContextFactory"); ht.put("java.naming.provider.url", "t3s://localhost:7001"); 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"); InitialContext ctx = new InitialContext(ht); } |
Примечание: в быстром исправлении используется порт начальной загрузки по умолчанию, 2809, для всех URL t3, включая URL SSL 't3s://'. Проверьте параметры сервера и убедитесь в том, что во всех URL задан правильный порт. За дополнительной информацией обратитесь к разделу Параметры номеров портов в WebSphere Application Server traditional.
Другой альтернативой при переносе приложения в WebSphere Application
Server traditional является удаление свойств и использование пустого конструктора
InitialContext().
Предупреждение: быстрое исправление корректирует только литералы. Если URL формируется с помощью переменных, его потребуется изменить вручную.
Пример с переменными до применения быстрого исправления:|
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); } |
Обратите внимание, что строковая переменная port не была изменена. Измените все такие переменные вручную.
Ниже приведен пример внесения аналогичных изменений в код XML.
Код XML до применения быстрого исправления:|
<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/"/> |
Инструмент миграции проверяет файлы свойств, однако быстрое исправление не обрабатывает свойства провайдера и фабрики naming. В случае WebSphere Application Server traditional удалите эти свойства или измените их на значения свойств имен WebSphere.
См. также описание правила Использовать переносимые значения свойств JNDI.