404 при доступе к приложению Джерси в Tomcat 7

Я новичок в веб-разработке, и я изо всех сил пытаюсь создать простой веб-сервис для отдыха, используя трикотаж, упакованный как независимый военный файл, для развертывания на tomcat 7.

Я следовал этому уроку для того, чтобы создать простой привет мир успокоительный веб-сервис. Я использовал intelij для создания файла war (как файла war, так и его разнесенной версии) и развернул его в папке tomcat \ webapps.

При запуске кота, я не могу получить доступ к URL (http://localhost:8080/rest/hello) - получаю 404.

Глядя на коталоги, я могуне может найти никаких исключений или ошибок, кроме следующих следующих строк:

INFO: Scanning for root resource and provider classes in the packages:
  sample
εαΘ 30, 2013 11:24:38 PM com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Root resource classes found:
  class sample.Hello
εαΘ 30, 2013 11:24:38 PM com.sun.jersey.api.core.ScanningResourceConfig init
INFO: No provider classes found.

Я искал это много и пытался следовать всем решениям для этой ошибки, но ничего не работало.

У меня такое чувство, что я скучаю по чему-то очень простому из-за моего новичкаНесс. Есть идеи, что искать? что мне не хватает? Это'Это простое приложение "Привет, мир!", и я расстроен и разочарован ...

Класс Java

package sample;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("hello")
public class Hello {

  // This method is called if TEXT_PLAIN is requested
  @GET
  @Produces(MediaType.TEXT_PLAIN)
  public String sayHelloInPlainText() {
    return "Hello world!";
  }

  // This method is called if HTML is requested
  @GET
  @Produces(MediaType.TEXT_HTML)
  public String sayHelloInHtml() {
    return " " + "" + "Hello world!" + ""
        + "" + "Hello world!" + "" + " ";
  }
}

web.xml

 
    

      rest

      
        Jersey REST Service
        com.sun.jersey.spi.container.servlet.ServletContainer
        
          com.sun.jersey.config.property.packages
          sample
        
        1
      

      
        Jersey REST Service
        /*
      

    
 David Levesque30 мая 2013 г., 23:20
Пожалуйста, включите код дляHello.java а такжеweb.xml в вашем вопросе. Это'Вам трудно помочь без подробностей.
 user190790631 мая 2013 г., 16:06
Ваша WAR развернута как?rest

Ответы на вопрос(2)

Решение Вопроса

аналогичный на этот так вопрос: "Классы провайдеров не найдены: при запуске примера приложения JEST REST ".

Сообщение "Классы провайдера не найдены хорошо, не нужно беспокоиться об этом. Для URLhttp://localhost:8080/rest/hello чтобы ваш WAR-файл нужно было вызватьrest.war, затемrest становится корнем контекста. Все пути, которые вы определяете в проекте »аннотацииотносительно корня контекста.

 aviad cohen01 июн. 2013 г., 13:58
Благодарю. В конце концов, это была моя проблема. (отсутствует URL). Мой военный файл называетсяwebr4' и если использовать URL localhost: 8080 / webr4 / привет, это сработало. Теперь все, что мне осталось, это понять, как перейти в контекст (?), Чтобы он небытьwebr4.
 Marcel Stör01 июн. 2013 г., 14:09
Самый простой - переименовать файл WAR.
 Marcel Stör01 июн. 2013 г., 17:31
Если это помогло вам решить проблему, подумайтепринимая этот ответ для того, чтобы помочь другим пользователям тоже.

rest, то вы должны получить правильное сообщение: "Привет, мир!" от кота с URL:

http://localhost:8080/rest/hello.

Если вы, например, назвали свой проект: MyHello, с кодом, который вы разместили, правильный URL должен быть:

http://localhost:8080/MyHello/hello

(Причина в том, что Eclipse по умолчанию создает войну, называемую именем проекта, и публикует ее на сервере Tomcat, который вы добавили в свою конфигурацию)

Дай мне знать

 aviad cohen01 июн. 2013 г., 14:02
Благодарю. На самом деле это была проблема. это хорошо работало, когда меняли, как я прокомментировал ответ выше.

Ваш ответ на вопрос