Я новичок в приложении REST, используя стандарт JAX-RS, и я хочу научиться работать с этим стандартом.
Поэтому я скачал и настроил Apache Tomcat 9.0 и добавил <Context>
как это:
<Context docBase="...\RestEasyApp\target\RestEasyApp" path="/example" reloadable="true"/>
Затем с помощью Maven
я создал свой проект со следующей структурой:
Затем в pom.xml
я добавил RestEasy по следующим зависимостям:
<!-- https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-jaxrs -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.5.1.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-servlet-initializer -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-servlet-initializer</artifactId>
<version>3.5.1.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-jackson2-provider -->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson2-provider</artifactId>
<version>3.5.1.Final</version>
</dependency>
Затем в web.xml
я создал сервлет, и это выглядит так:
<web-app>
<listener>
<listener-class>
org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
</listener-class>
</listener>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>Resteasy</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
Затем, наконец, я создал класс Hello.java, который будет обрабатывать запрос, и выглядит это так:
package com.pisi.resteasyapp;
import javax.ws.rs.*;
@Path("/api")
class Hello {
@GET
@Path("/hello")
public String hello() {
return "HELLO";
}
}
Но когда я запускаю это приложение с этим URI http://localhost:8080/example/rest/api/hello
, оно дает мне следующее:
Понятия не имею, почему это не сработает.