WebSphere 工作区 API 和 SPI 不可用

以下 WebSphere 工作区 API 和 SPI 在 Liberty 上不可用:

该规则会在每个 Java 类中标记这些软件包的任何实例。 您必须修改应用程序,以使其可在 Liberty 上运行。

虽然没有完全相同的替代方案,但可以参考以下迁移建议。

评估使用情况

注意代码中使用了工作区 API 和 SPI 的哪些功能,并考虑需要哪些功能。 请参阅 com.ibm.websphere.workarea Javadoc

较难迁移的功能包括

潜在替代品

com.ibm.websphere.appserver.api.DistributedMap

java.lang.ThreadLocal

java.lang.InheritableThreadLocal

Database

DistributedMap 示例

本例说明了如何迁移到 DistributedMap 如果您的应用程序不需要任何难以迁移的功能(这些功能已在 " 评估使用情况 "部分列出)。

默认的 WebSphere 动态高速缓存实例是在管理控制台启用高速缓存时创建的,并绑定到全局 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)

或者,您也可以设置 timeToLiveinactivityTime 设置或更新 ObjectDistributedMap.

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)

不适用

有关在 Liberty 上不受支持的其他 API 和 SPI 的信息,请参阅某些 API 和 SPI 在 Liberty 上不可用