java - 在 Dropwizard 2.0.0 中检索 Jetty 实例
问题描述
我们有一个在 Dropwizard 版本 2.0.0-RC 中制作的项目,我们使用 REST 端点。在一些问题之后,我们决定使用 gRPC 而不是 REST。有几个第三方库可以将 gRPC 连接到 Dropwizard,但我们认为它们有点过时且不可用。所以我们正在考虑实施 Armeria 及其 GRPC 解决方案。
为了实现这一点,我需要 Jetty 实例来附加 GRPC。
这就是我可以解决的方法(GRPC 和 Armeria 之间的混合):
Server server = Server.builder()
.http(8080)
.service(GrpcService.builder()...build())
.serviceUnder("/", JettyService.forServer(jettyServer))
.build();
server.start().join();
所以我需要jettyServer
成为 Jetty 的实例,类型为org.eclipse.jetty.server
. 其余代码是 Armerias 嵌入 Jetty 的方式。链接到嵌入码头。
如何检索 Jetty 的实例?
解决方案
我能够通过使用 Dropwizard 生命周期来获取服务器来解决这个问题。
// variable server is of type org.eclipse.jetty.server.Server
environment.lifecycle().addServerLifecycleListener(new ServerLifecycleListener() {
@Override
public void serverStarted(Server server) {
// ....
}
});
通过实例,您可以使用 Armeria 附加 gRPC
推荐阅读
- mysql - 计数函数只返回一行,但只显示一个客户的前 5 个航班号的计数。这里有什么问题?
- javascript - 需要优化代码来检查以下 json 转换的几个条件
- sql - 想从两个不同的表中减去两个日期,出现语法错误
- .net - 在项目引用链中,输出中缺少引用的 dll
- ios - iOS 上的 Xamarin.Forms:出现软键盘时缩小页面高度而不是向上移动
- python - Pytorch 相当于“tf.reverse_sequence”?
- django - 无法使用 Django 发送电子邮件
- swift - 如何更改文本视图中某些文本的颜色?
- php - 从 laravel 到 API 的 JSON 卷曲
- c# - 是否有模型验证属性可以在不使用自定义代码的情况下检查参数类型?