Отсутствуют API и SPI рабочей области WebSphere

Следующие API и SPI рабочей области WebSphere недоступны в Liberty:

Это правило помечает любой экземпляр этих пакетов один раз на класс Java. Для того чтобы приложение могло работать в Liberty, его необходимо изменить.

Хотя точных альтернатив не существует, рассмотрите следующие предложения по миграции.

Оцените использование

Обратите внимание на то, какие функции API Work Area и SPI используются в вашем коде, и подумайте, какие функции необходимы. См. com.ibm.websphere.workarea Javadoc.

К числу наиболее сложных для миграции функций относятся:

Потенциальные альтернативы

com.ibm.websphere.appserver.api.DistributedMap

java.lang.ThreadLocal

java.lang.InheritableThreadLocal

База данных

DistributedMap пример

В этом примере показано, как можно перейти на DistributedMap если ваше приложение не нуждается ни в одной из сложных функций для миграции, которые перечислены в разделе "Оцените использование ".

Экземпляр по умолчанию WebSphere Dynamic Cache создается при включении кэша в административной консоли и привязывается к глобальному JNDI пространство имен с именем services/cache/distributedmap. Больше экземпляров кэша можно создать с помощью файла свойств cacheinstances.properties или определив resource-ref для кэша в дескрипторе развертывания вашего модуля.

Более подробную информацию и примеры кода можно найти в документации Open Liberty для DistributedMap:

UserWorkArea

DistributedMap

begin(java.lang.String name)

InitialContext ic = new InitialContext();

DistributedMap distributedMap = (DistributedMap)ic.lookup("services/cache/customObjCache");

complete()

В основном это неприменимо, но подумайте о том, чтобы аннулировать ключи в DistributedMap, если они вам больше не нужны

distributedMap.addChangeListener(...)

distributedMap.invalidate(key)

get(java.lang.String key)

distributedMap.get(Object key) // returns Object

getMode(java.lang.String key)

Нет данных

getName()

Нет данных

remove(java.lang.String key)

distributedMap.addChangeListener(InvalidationListener listener)

distributedMap.invalidate(Object key)

В качестве альтернативы можно установить timeToLive или inactivityTime когда вы устанавливаете или обновляете Object в DistributedMap.

distributedMap.put(Object key, Object value, int priority, int timeToLive, int inactivityTime, int sharingPolicy, Object[] dependencyIds)

retrieveAllKeys()

Set dmSet = distributedMap.keySet(boolean includeDiskCache); // returns Set

String[] keys = dmSet.toArray(new String[0]);

set(java.lang.String key, java.io.Serializable value)

distributedMap.put(Object key, Object value)

distributedMap.put(Object key, Object value, int priority, int timeToLive, int inactivityTime, int sharingPolicy, Object[] dependencyIds)

distributedMap.put(Object key, Object value, int priority, int timeToLive, int sharingPolicy, Object[] dependencyIds)

set(java.lang.String key, java.io.Serializable value, PropertyModeType mode)

Нет данных

Информацию о других API и SPI, не поддерживаемых в Liberty, см. в разделе Некоторые API и SPI недоступны в Liberty.