使用 graalvm 构建顶点
vertx build with graalvm
我休假 https://github.com/vertx-howtos/graal-native-image-howto/blob/20.3.0/README.adoc 并设法用 graalvm 构建我的 vertx 项目,但是当我启动本机图像 vertx 时没有启动。我看不到 vertx 日志,“正在侦听...”
你可以看到我的full pom here
和java代码here
向应用程序添加一些错误处理将显示第一个问题与图像中缺少文件 application.properties
有关,这可以通过更新 native-image.properties
配置来解决:
-H:IncludeResources=.*\.properties
然后应用程序将启动,但再次无法 return 数据。这是因为应用程序正在使用 jackson 数据绑定(依赖于反射)将 POJO 编码为 JSON.
修复它需要了解 jackson 反射的工作原理并编写正确的配置,或者保持简单并使用 Vert.x 内置 JSON 类型,例如:
req.response()
.putHeader("content-type", "application/json")
.end(new JsonObject()
.put("name", "vertx")
.put("releaseYear", LocalDate.now().getYear())
.encode());
我休假 https://github.com/vertx-howtos/graal-native-image-howto/blob/20.3.0/README.adoc 并设法用 graalvm 构建我的 vertx 项目,但是当我启动本机图像 vertx 时没有启动。我看不到 vertx 日志,“正在侦听...”
你可以看到我的full pom here
和java代码here
向应用程序添加一些错误处理将显示第一个问题与图像中缺少文件 application.properties
有关,这可以通过更新 native-image.properties
配置来解决:
-H:IncludeResources=.*\.properties
然后应用程序将启动,但再次无法 return 数据。这是因为应用程序正在使用 jackson 数据绑定(依赖于反射)将 POJO 编码为 JSON.
修复它需要了解 jackson 反射的工作原理并编写正确的配置,或者保持简单并使用 Vert.x 内置 JSON 类型,例如:
req.response()
.putHeader("content-type", "application/json")
.end(new JsonObject()
.put("name", "vertx")
.put("releaseYear", LocalDate.now().getYear())
.encode());