Привет, мир с Джерси и гризли (из руководства пользователя)

Я просматриваю Руководство пользователя Джерси и пытаюсь установить пример Hello World с использованием веб-службы Jersey и встроенного сервера Grizzly.

Я просматриваю раздел 1 «Начало работы». У меня есть пример кода в разделе 1.1, компилируемый просто отлично:

// The Java class will be hosted at the URI path "/helloworld"
 @Path("/helloworld")
 public class HelloWorldResource {

     // The Java method will process HTTP GET requests
     @GET 
     // The Java method will produce content identified by the MIME Media
     // type "text/plain"
     @Produces("text/plain")
     public String getClichedMessage() {
         // Return some cliched textual content
         return "Hello World";
     }
 }

Но затем я перехожу к разделу 1.2 «Развертывание корневого ресурса», где я должен настроить встроенный веб-сервер Grizzly для тестирования моего ресурса:

public class Main {

      public static void main(String[] args) throws IOException {

          final String baseUri = "http://localhost:9998/";
          final Map<String, String> initParams = 
                           new HashMap<String, String>();

          initParams.put("com.sun.jersey.config.property.packages", 
                  "com.sun.jersey.samples.helloworld.resources");

         System.out.println("Starting grizzly...");
         SelectorThread threadSelector = 
              GrizzlyWebContainerFactory.create(baseUri, initParams);
         System.out.println(String.format(
           "Jersey app started with WADL available at %sapplication.wadl\n” + 
           “Try out %shelloworld\nHit enter to stop it...", baseUri, baseUri));
         System.in.read();
         threadSelector.stopEndpoint();
         System.exit(0);
     }    
 }

Проблема в том, что это руководство пользователя давно не обновлялось, и класс GrizzlyWebContainerFactory больше не существует!

Я использую Jersery v 1.10 и Grizzly v 1.9.41.

Может ли кто-нибудь помочь мне воссоздать этот пример? Я знаю, что могу запустить веб-службу в контейнере, мне интересно запустить ее с помощью простейшей настройки встроенного сервера, которая не требует дополнительных ресурсов (web.xml и т. д.) в моем проекте, только 2 класса.


person Tom Tresansky    schedule 22.11.2011    source источник


Ответы (1)


Я думаю, что ответ заключается в том, что мне нужно включить зависимость jersey-grizzly, тогда я смогу следуйте инструкциям в руководстве пользователя.

Это НЕ указано в списке обязательных зависимостей, предоставленном руководством пользователя:

Разработчики, не являющиеся экспертами, требуют:

grizzly-servlet-webserver.jar, jersey-server.jar, jersey-core.jar, jsr311-api.jar, asm.jar

Благодаря Райану Стюарту, ответу на аналогичный вопрос.

person Tom Tresansky    schedule 22.11.2011
comment
Спасибо за улов. Мы исправим это. - person Martin Matula; 22.11.2011
comment
Потрясающий! Мне нравится использовать SO и видеть, как это происходит! Надеюсь, это поможет избежать путаницы для некоторых других новичков в Джерси. - person Tom Tresansky; 22.11.2011