As APIs e SPIs da Área de trabalho do WebSphere estão indisponíveis

As APIs e SPIs da Área de trabalho do WebSphere a seguir não estão disponíveis no Liberty:

Essa regra sinaliza qualquer instância desses pacotes uma vez por classe Java. Deve-se modificar o aplicativo para que ele possa ser executado no Liberty.

Embora não existam alternativas exatas, analise as seguintes sugestões de migração.

Avaliar o uso

Observe quais recursos das APIs e SPIs da área de trabalho são usados em seu código e considere quais recursos são necessários. Consulte o com.ibm.websphere.workarea Javadoc.

Alguns dos recursos mais difíceis de migrar são:

Alternativas em potencial

com.ibm.websphere.appserver.api.DistributedMap

java.lang.ThreadLocal

java.lang.InheritableThreadLocal

Banco de dados

DistributedMap exemplo

Este exemplo mostra como você pode migrar para DistributedMap se o seu aplicativo não precisar de nenhum dos recursos difíceis de migrar, que estão listados na seção Avaliar uso.

A instância padrão do WebSphere Dynamic Cache é criada quando o cache é ativado no console administrativo e é vinculada à instância global JNDI com o nome services/cache/distributedmap. Mais instâncias de cache podem ser criadas usando um arquivo de propriedades cacheinstances.properties ou definindo um resource-ref para o cache no descritor de implantação do seu módulo.

Leia mais e veja o código de exemplo na documentação Open Liberty para DistributedMap:

UserWorkArea

DistributedMap

begin(java.lang.String name)

InitialContext ic = new InitialContext();

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

complete()

Na maioria das vezes não se aplica, mas considere invalidar as chaves em um DistributedMap se não precisar mais delas

distributedMap.addChangeListener(...)

distributedMap.invalidate(key)

get(java.lang.String key)

distributedMap.get(Object key) // returns Object

getMode(java.lang.String key)

Não aplicável

getName()

Não aplicável

remove(java.lang.String key)

distributedMap.addChangeListener(InvalidationListener listener)

distributedMap.invalidate(Object key)

Como alternativa, você pode definir timeToLive ou inactivityTime quando você define ou atualiza um Object em 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)

Não aplicável

Para obter informações sobre outras APIs e SPIs que não são suportadas no Liberty, veja Algumas APIs e SPIs não estão disponíveis no Liberty.