Почему я не могу назвать этот простой веб-сервис? - PullRequest
0 голосов
/ 29 ноября 2018

Я создал веб-проект на Eclipse с одним классом: «HelloWorld.java», который должен иметь метод, отвечающий на запросы GET.

package javaeetutorial.hello;

// imports

@Path("base")
public class HelloWorld extends HttpServlet {

    public HelloWorld() {
    }

    @GET
    @Produces("text/html")
    public String getHtml() {
        return "<html lang=\"en\"><body><h1>Hello, World!!</h1></body></html>";
    }
}

Затем в папке WebContent вВ каталоге WEB-INF я создал файл web.xml со следующим содержимым, чтобы сопоставить запросы с / hello url моему сервлету.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         metadata-complete="true"
         version="3.1">

<servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>javaeetutorial.hello.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
      <servlet-name>hello</servlet-name>
      <url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>

Я экспортирую проект в файл .warи затем я развертываю его с помощью Glassfish, но когда я вызываю URL, который предположительно вызывает мой веб-сервис, он показывает мне «Запрошенный ресурс () недоступен».

URL, который я вызываю: http://localhost:8080/Calculator/hello/base

Почему мой веб-сервис не вызывается?

1 Ответ

0 голосов
/ 29 ноября 2018

Как отметил VGR в комментариях, я путал JAX-RS с сервлетами.

Я решил пойти по маршруту сервлета.Я удалил все аннотации и заменил свой метод getHTML переопределением метода doGet HttpServlet.Теперь все работает как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...