не могу найти маршрут javaEE

Я создал новый веб-проект в netbeans (новый проект - веб-приложение Java || имя: тест || сервер: сервер GlassFish 4.1.1 || Версия JavaEE: веб-сайт JavaEE 7 || ContextPath: /Test)

Он генерирует html-файл, в который я добавляю простой вызов ajax на сервер.

<html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <div>TODO write content</div>
        <script>
            fetch('/Test/name').then(function(x){
                console.log(x)
            })
        </script>
    </body>
</html>

Теперь (без тега script), когда я запускаю проект, он бросает меня на

localhost:8080/Test

Теперь я создаю новый класс Java

@Path("/Test")
@Produces("text/plain")
public class RequestClass {
     private String name = "MyName";
     private String age = "MyAge";
    @GET
    @Path("/name")
    @Produces("text/plain")
    public String getName(){
        return this.name;
    }
    @GET
    @Path("/age")
    @Produces("text/plain")
    public String getAge(){
        return this.age;
    }
}

Теперь, когда я создаю и запускаю проект, сервер отвечает 404.

http://localhost:8080/Test/name Не удалось загрузить ресурс: сервер ответил со статусом из 404 (не найдено)

Почему это происходит? Маршрут правильный, так почему он не может его найти?

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

Я пытался использовать только

    fetch('/name').then(function(x){
        console.log(x)
    })

но тоже не работал.

Спасибо за помощь!


person Johnyb    schedule 23.12.2016    source источник


Ответы (1)


Каково имя вашего приложения или корень контекста приложения? вам нужно, чтобы корень вашего контекста приложения в URL-адресе работал, например, домен:порт//маршруты, для вашего случая это будет http://localhost:8080/application-context-root/Test/name

Конфигурация Джерси

<servlet>
    <servlet-name>jersey-serlvet</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>com.mkyong.rest</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>jersey-serlvet</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>
person Kiran Kumar    schedule 23.12.2016
comment
Где я могу найти его? - person Johnyb; 23.12.2016
comment
В свойствах проекта eclipse goto, а затем перейдите к настройке веб-проекта, вы найдете корень контекста. - person Kiran Kumar; 23.12.2016
comment
Я использую netbeans, он сгенерировал файл web.xml, но я не вижу в нем тега ‹context-root› - person Johnyb; 23.12.2016
comment
Какой сервер вы используете? - person Kiran Kumar; 23.12.2016
comment
Glassfish 4.1.1, все детали под вопросом - person Johnyb; 23.12.2016
comment
Вы можете перейти в консоль администратора Glassfish -> приложения -> выбрать свое приложение -> там вы найдете. - person Kiran Kumar; 23.12.2016
comment
корень контекста /Test для этого в соответствии с консолью администратора - person Johnyb; 23.12.2016
comment
Не просто 404 в консоли браузера - person Johnyb; 23.12.2016
comment
Вы добавили сервлет джерси / и сопоставление сервлетов в web.xml? - person Kiran Kumar; 23.12.2016
comment
Давайте продолжим это обсуждение в чате. - person Johnyb; 23.12.2016