Получить экземпляр Jetty в Dropwizard 2.0.0 - PullRequest
1 голос
/ 07 октября 2019

У нас есть проект, выполненный в Dropwizard версии 2.0.0-RC, где мы используем REST-конечные точки. После некоторых проблем мы решили использовать gRPC вместо REST. Существует несколько сторонних библиотек для подключения gRPC к Dropwizard, но мы считаем, что они немного устарели и не используются. Поэтому мы думаем о внедрении Armeria и их решения GRPC.

Чтобы реализовать это, мне нужен экземпляр Jetty для подключения GRPC.

Вот как я могу это решить (Mix между 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?

Ответы [ 2 ]

2 голосов
/ 08 октября 2019

Мне удалось решить эту проблему с помощью жизненных циклов Dropwizard для получения сервера.

// variable server is of type org.eclipse.jetty.server.Server
environment.lifecycle().addServerLifecycleListener(new ServerLifecycleListener() {
    @Override
    public void serverStarted(Server server) {
      // ....
    }
});

С помощью этого экземпляра вы можете использовать Armeria для подключения gRPC

0 голосов
/ 07 ноября 2019

Мне удалось использовать ссылки, приведенные в комментариях к другому ответу, и собрать этот PR в проекте Armeria для добавления модуля dropwizard.

https://github.com/line/armeria/pull/2236

В настоящее время он нацелен на 1.3.x, а не на 2.0, но как только будет выпущен стабильный выпуск, его нужно будет обновить

...