問題
- 新しいHotfixをインストールした後、一時フォルダをクリアしても、ポータルが正しく起動しません:
INFO [main][ModuleFrameworkImpl:1971] Starting web bundles
ERROR [Start Level: Equinox Container: 7f6f4ee4-db9b-4469-9c46-80ad77f2f722][FilterFactoryRegistryImpl:93] bundle com.liferay.frontend.taglib.clay:6.3.11 (159)[com.liferay.frontend.taglib.clay.internal.data.FilterFactoryRegistryImpl(3823)] : The activate method has thrown an exception
java.lang.NoClassDefFoundError: com/liferay/osgi/service/tracker/collections/map/ServiceTrackerCustomizerFactory$3
at com.liferay.osgi.service.tracker.collections.map.ServiceTrackerCustomizerFactory.serviceWrapper(ServiceTrackerCustomizerFactory.java:114)
at com.liferay.frontend.taglib.clay.internal.data.FilterFactoryRegistryImpl.activate(FilterFactoryRegistryImpl.java:79)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
.
.
ERROR [Start Level: Equinox Container: 7f6f4ee4-db9b-4469-9c46-80ad77f2f722][ClayDataSetContentRendererContextContributorRegistryImpl:93] bundle com.liferay.frontend.taglib.clay:6.3.11 (159)[com.liferay.frontend.taglib.clay.internal.data.set.ClayDataSetContentRendererContextContributorRegistryImpl(3825)] : The activate method has thrown an exception
java.lang.NoClassDefFoundError: com/liferay/osgi/service/tracker/collections/map/ServiceTrackerCustomizerFactory$3
at com.liferay.osgi.service.tracker.collections.map.ServiceTrackerCustomizerFactory.serviceWrapper(ServiceTrackerCustomizerFactory.java:114)
at com.liferay.frontend.taglib.clay.internal.data.set.ClayDataSetContentRendererContextContributorRegistryImpl.activate(ClayDataSetContentRendererContextContributorRegistryImpl.java:87)
Environment
- Liferay DXP 7.3
解決策
- Hotfixのインストール時に、何らかの理由でosgiやLiferay home内の一部のファイルやフォルダ全体が破損することがあります。
- この場合、osgi内のcoreフォルダを入れ替えることで、上記のエラーは解消されました。
- DXPの新しいバニラインスタンスをダウンロードし、必要なHotfixを適用し、破損したバンドルのosgi/coreフォルダを新しいインスタンスのosgi/coreフォルダと入れ替えてください。
- ロールバックが必要な場合に備えて、これ以上の困難を避けるために、まずバックアップをとってください。
追加情報
- ユーザーは、Hotfixのインストールや復帰の際に、どのファイルが影響を受けるかを確認するために、解凍したりアーカイブモードで開いたりすることで確認できるHotfixの構造を常に見ることができます。
-
この場合、例えば
{ $LIFERAY_HOME }\patching-tool\patches\liferay-hotfix-xyz-7310.zip\binaries\MODULES_BASE_PATH\Core
-
この場合、例えば