java - 运行嵌入式 ElasticSearch 时权限被拒绝异常
问题描述
我正在使用https://github.com/allegro/embedded-elasticsearch为 Elastic 编写集成测试。在我运行测试时进行初始设置后,此插件成功下载了弹性实例,但开始给出权限被拒绝错误。
我的 Java 版本:
openjdk 11.0.2 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
全栈跟踪
Exception in thread "EmbeddedElsHandler" pl.allegro.tech.embeddedelasticsearch.EmbeddedElasticsearchStartupException: java.io.IOException: Cannot run program "/var/folders/ql/403xvvqs42v00xlnqgr6d8540000gn/T/embedded-elasticsearch-temp-dir/elasticsearch-6.6.0/bin/elasticsearch": error=13, Permission denied
at pl.allegro.tech.embeddedelasticsearch.ElasticServer.lambda$startElasticProcess$6(ElasticServer.java:89)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.io.IOException: Cannot run program "/var/folders/ql/403xvvqs42v00xlnqgr6d8540000gn/T/embedded-elasticsearch-temp-dir/elasticsearch-6.6.0/bin/elasticsearch": error=13, Permission denied
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
at pl.allegro.tech.embeddedelasticsearch.ElasticServer.lambda$startElasticProcess$6(ElasticServer.java:80)
... 1 more
Caused by: java.io.IOException: error=13, Permission denied
at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:340)
at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:271)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
... 3 more
我的嵌入式弹性配置
@BeforeClass
public static void setup() {
final EmbeddedElastic embeddedElastic = EmbeddedElastic.builder()
.withElasticVersion("6.6.0")
.withSetting(PopularProperties.TRANSPORT_TCP_PORT, "9200")
.withSetting(PopularProperties.CLUSTER_NAME, "partner_portal_elasticsearch_cluster")
.withPlugin("analysis-stempel") // Commented this line, with this line permission deined came while installing the plugin
.build();
try {
embeddedElastic.start();
System.out.println("Embedded Elastic Search instance started................");
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
解决方案
推荐阅读
- react-native - 在 react native 中从 firestore 集合中获取价值
- azure-logic-apps - ADLS 的 Azure 逻辑应用 http 连接器损坏了 zip 文件
- windows - 如何从第一行输出中仅获取 postgres.exe 的 PID
- javascript - 为什么 for 循环函数返回 else-code 而不是输入 if-true-code?
- html - 如何使用 Blazor 组件定位特定的 div?
- android - 使用改造 android 的搜索视图
- ibm-midrange - 在 IBM i 的 iASP 上运行程序时通过 IFS 引用库
- javascript - 有人开始流式传输时的自动角色
- c++ - 了解复制构造函数的工作
- javascript - Angular:使用 *ngIf 隐藏组件不起作用