Hello World с Джерси и Гризли (из Руководства пользователя) - PullRequest
3 голосов
/ 22 ноября 2011

Я смотрю на Руководство пользователя по Джерси и пытаюсь настроить пример Hello World, используя веб-сервис Джерси и встроенный сервер 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 класса.

1 Ответ

7 голосов
/ 22 ноября 2011

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

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

Разработчикам не maven требуется:

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

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

...