WebSphere 工作區 API 及 SPI 無法使用

在 Liberty 中無法使用下列 WebSphere 工作區 API 及 SPI:

此規則標記這些套件的任何實例,每個 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 當您設定或更新 Object in 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)

不適用

如需 Liberty 中不支援的其他 API 及 SPI 相關資訊,請參閱在 Liberty 中無法使用部分 API 及 SPI