Java-ee REST-Server mit IntelliJ und Tomcat

Ich versuche, eine REST-Server-API mithilfe von Java-ee zu implementieren.Die Lernprogramm. Anstelle von Glassfish verwende ich Tomcat.

Ich könnte ein Servlet entwickeln

@WebServlet(name = "hello", urlPatterns = "/")
public class HelloWorld extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().write("=)");
    }
}

Und mach mithttp: // localhost: 9080 / Ich kann das lächelnde Gesicht sehen. Aber wenn ich versuche, auf den API-Pfad zuzugreifen http: // localhost: 9080 / api / recommend / all) Ich bekomme auch das Gesicht. Wenn ich die Servlet-Klasse entferne, wird ein 404-Fehler angezeigt. Ich nehme an, ich brauche etwas anderes, um die API automatisch zu erstellen, aber ich weiß nicht, was.

Kann mir jemand sagen, was fehlt? Was soll ich machen

Update: In der Java Enterprise-Ansicht von Intellij wird Folgendes angezeigt:

Web > HelloWorld
RESTful WS > recommend > all

Dies sind meine API-Klassen:

@ApplicationPath("/api")
public class REST_Config extends Application {
}

Und die spezifische Methode

@Path("recommend")
public class RecommenderController {

    @Path("/all")
    @GET
    @Produces("application/json")
    public JsonArray getAll(){
        JsonArrayBuilder builder = Json.createArrayBuilder();

        builder.add(Json.createObjectBuilder().add("1", "2.5"));

        return builder.build();
    }
}

Und die pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>TestREST</groupId>
    <artifactId>TestREST</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <dependencies>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>7.0</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>TestREST</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
            </plugin>

        </plugins>
    </build>
</project>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage