legacy-knowledge-base
公開されました Sep. 10, 2025

カスタムキャッシュのエンティティの取得に失敗し、エラーが発生する。

written-by

Adam Zsolnay

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

問題

  • Liferayに導入したカスタムキャッシュの実体がアクセスできない。 override-liferay-multi-vm-clustered.xmlでカスタムキャッシュを設定した。 でスクリプトコンソールからカスタムキャッシュエンティティにアクセスしようとした場合:
    MultiVMPoolUtil.getPortalCache("com.custom.service.model.impl.AnyImpl").getKeys();

    DXP 7.1のスロー:

    com.liferay.portal.cache.ehcache.LiferayCacheEventListenerFactory cannot be found by com.liferay.portal.cache.ehcache.impl_1.0.12

環境

  • DXP 7.1 , DXP 7.0 (Fix pack 28+)

解像度

  • カスタムキャッシュは2つの方法で設定することができます:a) プラグインの方法 または b) 今回のケースであるxmlの方法です。 以下、手順をご確認ください。

    1./ portal-ext.propertiesに以下のポータルプロパティをチューニングします:

    ehcache.replicator.properties.${specific.cache.name}=

    一例として:

    ehcache.replicator.properties.com.custom.service.model.impl.AnyImpl=replicatePutsViaCopy=true,replicateUpdatesViaCopy=true

    は、カスタムキャッシュをどのように動作させたいかによって異なります。 上記プロパティに値が指定されない場合は、PortalCacheReplicator.javaで指定された定数にフォールバックする。

    2./ portal-ext.propertiesのoverride-liferay-multi-vm-clustered.xml をポイントします:

    ehcache.multi.vm.config.location=/myehcache/override-liferay-multi-vm-clustered.xml

    via 相対パス、WEB-INF/classes からの相対パス、absolute パスは受け付けません。 上記の例では、WEB-INF/classes/myehcache フォルダにxmlを配置しています。

    3./ override-liferay-multi-vm-clustered.xml: liferay-multi-vm-clustered.xml を /osgi/marketplace/Liferay Foundation - Liferay Portal Cache - Impl.com.liferay.portal.cache.ehcache.impl.jar から抽出します。DXP 7.1 では /osgi/marketplace/Liferay Foundation.lpkg にある com.liferay.portal.cache.ehcache.jar から、DXP 7.0 では /osgi/marketplace/Liferay Foundation.lpkg から、ファイル名を override-liferay-multi-vm-clustered.xml に変えます。 ファイルの最後、 </ehcache> タグの前にカスタムキャッシュの設定を追記します。

    4./ override-liferay-multi-vm-clustered.xml をクラスパス( WEB-INF/cl またはそのサブフォルダ)に配置します。 上記の例では、WEB-INF/classes/myehcacheフォルダーへ)

    5./ Portalを起動します。

追加情報

did-this-article-resolve-your-issue

legacy-knowledge-base