Search code examples
eclipse-hono

Protocoll adapter start fails with `OpenSSL is not available`


The MQTT protocol adapter does not start and in its log I see the message io.vertx.core.VertxException: OpenSSL is not available. What does this mean and what could be the cause?

11:10:18.131 [main] ERROR o.e.h.a.m.i.Application$$EnhancerBySpringCGLIB$$f98773bb - exception occurred during startup, shutting down ...
java.util.concurrent.ExecutionException: io.vertx.core.VertxException: OpenSSL is not available
   at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
   at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2022)
   at org.eclipse.hono.service.AbstractBaseApplication.run(AbstractBaseApplication.java:160)
   at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:804)
   at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:794)
   at org.springframework.boot.SpringApplication.run(SpringApplication.java:324)
   at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
   at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
   at org.eclipse.hono.adapter.mqtt.impl.Application.main(Application.java:37)
   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 org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
   at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
   at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
   at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:593)
Caused by: io.vertx.core.VertxException: OpenSSL is not available

Solution

  • Please check if you have set the property nativeTlsRequired in the protocol adapter's configuration to true. The default Hono containers do not contain netty-tcnative. To enable this option, please follow the explanation in the Hono Admin Guide or build your own container images.