Исключение 404 с майкой restful веб-сервиса

Я только что установил netbeans на свой Mac (OS X Lion) и пытаюсь создать спокойный веб-сервис с помощью Джерси.

Когда я захожу на свой локальный хост: 8080/HelloWorld/test/printHello, я получаю исключение 404... поэтому я подумал, что загляну в свой файл web.xml... но не могу найти файл.

Любые указатели, где я должен смотреть и что я должен делать? Мой класс Java размещен ниже.

@Path("/test")
public class helloworld {

    @GET
    @Path("printHello")
    @Produces("text/plain")
    public String printHello() {
        return "Hello there!";
    }
}

person user1467188    schedule 03.08.2012    source источник
comment
Если у вас нет файла web.xml, как вы развертываете его на своем сервере приложений?? какой из них вы используете? Сначала вы должны настроить сервлет Джерси на нем.   -  person Eugenio Cuevas    schedule 03.08.2012
comment
Я использую стеклянную рыбу и настроил сервлет из Джерси.   -  person user1467188    schedule 03.08.2012
comment
У вас все еще есть проблема?   -  person Ruwantha    schedule 17.08.2012


Ответы (2)


Согласно спецификации сервлета 3.0 файл web.xml является необязательным.

Однако при создании веб-проекта в Netbeans/Eclipse нам будет предоставлена ​​возможность иметь дескриптор развертывания. Если нет, мы можем явно создать web.xml. И да, нам нужен файл web.xml для создания веб-сервисов для отдыха с использованием Джерси, поскольку его API предоставляет ServletContainer, который заботится о сопоставлении классов на основе URL-адреса.

Надеюсь это поможет!

person kausal_malladi    schedule 05.11.2012

В Netbeans файл web.xml находится в

WAR-Project with Maven
    - Web Pages
        - WEB-INF
            - web.xml

В структуре папок он находится в:

WAR-Project with Maven
    - src
        - main
            - webapp
                - WEB-INF
                    - web.xml

Там вы можете определить сервлет Джерси:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<!-- Jersey -->
    <servlet>
        <servlet-name>Jersey Web Application</servlet-name>
        <servlet-class>
            com.sun.jersey.spi.container.servlet.ServletContainer
        </servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>package.path.to.your.rest.service;</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey Web Application</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>
</web-app>

Теперь вы можете получить доступ к своему REST-сервису по следующему URL-адресу:

localhost:8080/HelloWorld/rest/test/printHello
person Yser    schedule 23.02.2014