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

java.lang.RuntimeException:Elasticsearch を組み込んだ Liferay を起動すると、Unable to install analysis-icu plugin error が発生します。

written-by

Jorge Diaz

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

問題

  • エラー java.lang.RuntimeException:Unable to install analysis-icu plugin エラー は、組み込みの Elasticsearch を使用して Liferay を起動する際に発生します。
  • このエラーにより、組み込みのElasticsearchが正しく起動しません。
2022-01-21 13:05:06.079 WARN  [Elasticsearch Initialization Thread][EmbeddedElasticsearchConnection:297] Liferay is configured to use embedded Elasticsearch as its search engine. Do NOT use embedded Elasticsearch in production. Embedded Elasticsearch is useful for development and demonstration purposes. Refer to the documentation for details on the limitations of embedded Elasticsearch. Remote Elasticsearch connections can be configured in the Control Panel.
2022-01-21 13:05:06.676 ERROR [main][ElasticsearchEngineConfigurator:93] bundle com.liferay.portal.search.elasticsearch6.impl:3.0.89.hotfix-6159-7210 (107)[com.liferay.portal.search.elasticsearch6.internal.ElasticsearchEngineConfigurator(112)] : The activate method has thrown an exception
java.lang.RuntimeException: Unable to initialize Elasticsearch engine
       at com.liferay.portal.search.elasticsearch6.internal.ElasticsearchEngineConfigurator.initialize(ElasticsearchEngineConfigurator.java:130)
       at com.liferay.portal.search.elasticsearch6.internal.ElasticsearchEngineConfigurator.activate(ElasticsearchEngineConfigurator.java:65)
       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
       at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[...]
       at com.liferay.portal.bootstrap.ModuleFrameworkImpl._registerService(ModuleFrameworkImpl.java:1571)
       at com.liferay.portal.bootstrap.ModuleFrameworkImpl.lambda$_registerApplicationContext$4(ModuleFrameworkImpl.java:1524)
       at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
       at com.liferay.portal.bootstrap.ModuleFrameworkImpl._registerApplicationContext(ModuleFrameworkImpl.java:1509)
       at com.liferay.portal.bootstrap.ModuleFrameworkImpl.registerContext(ModuleFrameworkImpl.java:324)
       at com.liferay.portal.module.framework.ModuleFrameworkUtilAdapter.registerContext(ModuleFrameworkUtilAdapter.java:72)
       at com.liferay.portal.util.InitUtil.registerContext(InitUtil.java:290)
       at com.liferay.portal.tools.DBUpgrader.main(DBUpgrader.java:125)
       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
       at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
       at com.liferay.portal.tools.db.upgrade.client.DBUpgraderLauncher.main(DBUpgraderLauncher.java:55)
Caused by: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Unable to install analysis-icu plugin
       at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
       at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
       at com.liferay.portal.search.elasticsearch6.internal.ElasticsearchEngineConfigurator.initialize(ElasticsearchEngineConfigurator.java:127)
       ... 126 more
Caused by: java.lang.RuntimeException: Unable to install analysis-icu plugin
       at com.liferay.portal.search.elasticsearch6.internal.connection.EmbeddedElasticsearchConnection.installPlugin(EmbeddedElasticsearchConnection.java:384)
       at com.liferay.portal.search.elasticsearch6.internal.connection.EmbeddedElasticsearchConnection.installPlugins(EmbeddedElasticsearchConnection.java:400)
       at com.liferay.portal.search.elasticsearch6.internal.connection.EmbeddedElasticsearchConnection.createNode(EmbeddedElasticsearchConnection.java:355)
       at com.liferay.portal.search.elasticsearch6.internal.connection.EmbeddedElasticsearchConnection.createClient(EmbeddedElasticsearchConnection.java:308)
       at com.liferay.portal.search.elasticsearch6.internal.connection.BaseElasticsearchConnection.connect(BaseElasticsearchConnection.java:65)
       at com.liferay.portal.search.elasticsearch6.internal.connection.ElasticsearchConnectionManager.connect(ElasticsearchConnectionManager.java:71)
       at com.liferay.portal.search.elasticsearch6.internal.ElasticsearchEngineConfigurator.lambda$initialize$0(ElasticsearchEngineConfigurator.java:114)
       at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
       at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.nio.file.FileSystemException: /opt/liferay-dxp-7.2.10.1-sp1/data/elasticsearch6/plugins/analysis-icu/analysis-icu-client-6.8.15.jar: Operation not permitted
       at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:100)
       at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
       at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
       at java.base/sun.nio.fs.UnixFileAttributeViews$Posix.setMode(UnixFileAttributeViews.java:254)
       at java.base/sun.nio.fs.UnixFileAttributeViews$Posix.setPermissions(UnixFileAttributeViews.java:276)
       at java.base/java.nio.file.Files.setPosixFilePermissions(Files.java:2079)
       at org.elasticsearch.plugins.InstallPluginCommand.setFileAttributes(InstallPluginCommand.java:945)
       at org.elasticsearch.plugins.InstallPluginCommand.access$000(InstallPluginCommand.java:123)
       at org.elasticsearch.plugins.InstallPluginCommand$1.visitFile(InstallPluginCommand.java:855)
       at org.elasticsearch.plugins.InstallPluginCommand$1.visitFile(InstallPluginCommand.java:846)
       at java.base/java.nio.file.Files.walkFileTree(Files.java:2724)
       at java.base/java.nio.file.Files.walkFileTree(Files.java:2796)
       at org.elasticsearch.plugins.InstallPluginCommand.movePlugin(InstallPluginCommand.java:846)
       at org.elasticsearch.plugins.InstallPluginCommand.installPlugin(InstallPluginCommand.java:822)
       at org.elasticsearch.plugins.InstallPluginCommand.install(InstallPluginCommand.java:786)
       at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:232)
       at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:217)
       at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
       at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124)
       at org.elasticsearch.cli.MultiCommand.execute(MultiCommand.java:77)
       at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124)
       at org.elasticsearch.cli.Command.main(Command.java:90)
       at com.liferay.portal.search.elasticsearch6.internal.connection.PluginManagerImpl.main(PluginManagerImpl.java:136)
       at com.liferay.portal.search.elasticsearch6.internal.connection.PluginManagerImpl.lambda$install$0(PluginManagerImpl.java:77)
       at com.liferay.portal.search.elasticsearch6.internal.connection.PluginJarConflictCheckSuppression.lambda$execute$0(PluginJarConflictCheckSuppression.java:27)
       at com.liferay.portal.search.elasticsearch6.internal.connection.PluginJarConflictCheckSuppression.execute(PluginJarConflictCheckSuppression.java:39)
       at com.liferay.portal.search.elasticsearch6.internal.connection.PluginJarConflictCheckSuppression.execute(PluginJarConflictCheckSuppression.java:25)
       at com.liferay.portal.search.elasticsearch6.internal.connection.PluginManagerImpl.install(PluginManagerImpl.java:74)
       at com.liferay.portal.search.elasticsearch6.internal.connection.EmbeddedElasticsearchPluginManager.downloadAndExtract(EmbeddedElasticsearchPluginManager.java:96)
       at com.liferay.portal.search.elasticsearch6.internal.connection.EmbeddedElasticsearchPluginManager.install(EmbeddedElasticsearchPluginManager.java:56)
       at com.liferay.portal.search.elasticsearch6.internal.connection.EmbeddedElasticsearchConnection.installPlugin(EmbeddedElasticsearchConnection.java:381)
       ... 8 more
    

Environment

  • DXP 7.2

解決策

[LIFERAY_HOME]/data/elasticsearch6/plugin ディレクトリを異なるElasticsearchモジュールで準備する際に、組み込みElasticsearchでエラーが発生します。

この瞬間に:
  1. Liferay は Elasticsearch LPKG ファイルから Elasticsearch プラグインを抽出します。
  2. Liferayはそれらを一時フォルダにコピーし、それぞれのフォルダに対して。
  3. Liferay は Elasticsearch のコードから org.elasticsearch.plugins.InstallPluginCommand コマンドを実行し、プラグインを最終的な場所に移動してインストールします。
原因:java.nio.file.FileSystemException: [LIFERAY_HOME]/data/elasticsearch6/plugins/analysis-icu/analysis-icu-client-6.8.15.jar:Operation not permitted 組み込みのElasticsearchがJARファイルのパーミッションにアクセスまたは変更できない場合に、エラーがスローされます。

問題を解決するために、以下のことを確認してください:

  • [LIFERAY_HOME]/data/elasticsearch6 [LIFERAY_HOME]/data/elasticearch6/plugin フォルダは、Liferay サーバーの実行に使用するユーザーが所有しており、サブフォルダやファイルを作成するのに十分な権限を持っています。
  • [LIFERAY_HOME]/data/elasticsearch6 フォルダは、ローカルファイルシステムへのパスであり、マウントされたNFSや同様のネットワークドライブではありません。
  • このフォルダでは、touchコマンドやchmodコマンドが正しく動作します。例えば、以下の行が動作するはずです:
    • touch [LIFERAY_HOME]/data/elasticearch6/plugin/dummy
    • chmod 644 [LIFERAY_HOME]/data/elasticearch6/plugin/dummy
  • これらの行が機能しない場合、オペレーティングシステムレベルでのファイルシステムの問題があると思われます。
did-this-article-resolve-your-issue

legacy-knowledge-base