legacy-knowledge-base
公開されました Jul. 2, 2025

「サービス モジュール ローダーからクラスを定義できませんでした」エラーを解決する方法

投稿者

Caleb Bartles

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text

問題

  • JBoss にバンドルされている Liferay ポータルに security-hotfix-lsv-45 をインストールすると、Liferay ログに「クラスの定義に失敗しました」というエラーが生成されます。
    • Failed to define class com.liferay.portal.security.xml.SecureXMLFactoryProviderImpl in Module "deployment.ROOT.war:main" from Service Module Loader: java.lang.LinkageError: Failed to link com/liferay/portal/security/xml/SecureXMLFactoryProviderImpl (Module "deployment.ROOT.war:main" from Service Module Loader).
  • このエラーは、ここで概説されている正しいポータル プロパティ構成で持続します: security-hotfix-lsv-45

Environment

  • ポータル 6.1
  • ポータル 6.2

解決策

  • この問題は、既存のインデックスが原因で、JBoss が SecureXMLFactoryProviderUtil.class および SecureXMLFactoryProvider.class を見つける場所を認識していないことに起因します。 これら 2 つのファイルは、portal-impl.jar から SecureXMLFactoryProviderImpl をインスタンス化するときに必要です。
  • このエラーを修正するには:
      1. Liferay ポータルをシャットダウンします。
      2. ここにある portal-service.jar.index を削除します: <LIFERAY_HOME>/<Jboss>/modules/com/liferay/portal/main/portal-service.jar.index
      3. Liferay ポータルを再起動します。

追加情報

did-this-article-resolve-your-issue

legacy-knowledge-base