Tomcat не может запустить Джерси с локальными банками - ошибка 404 - PullRequest
0 голосов
/ 05 августа 2020

В настоящее время я пытаюсь создать спокойный сервис с помощью jax и jersey, но продолжаю получать ошибку 404 при переходе к моей конечной точке. Что я здесь делаю не так?

Я также не могу подключиться к репозиторию maven, так как в настоящее время он заблокирован, и поэтому мне приходится использовать локальные файлы jar. Также используйте IntelliJ, если это помогает.

build.gradle

plugins {
    id 'java'
    id 'war'
}

version 'unspecified'

sourceCompatibility = 1.8

repositories {
    maven  {
        url "http://repo1.maven.org/maven2"
    }
}

dependencies {
    compile files('src/main/webapp/WEB-INF/lib/jersey-container-servlet-core-2.28.jar')
    compile files('src/main/webapp/WEB-INF/lib/javax.ws.rs-api-2.1.1.jar')
    compile files('src/main/webapp/WEB-INF/lib/javax.servlet-api-4.0.1.jar')
}

ApiResource. java

package api;

import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;

@ApplicationPath("/")
@Path("/")
public class ApiResource {

    @GET
    @Path("categories")
    @Produces("text/plain")
    //@Produces(MediaType.APPLICATION_JSON)
    public String categories(@Context HttpServletRequest httpRequest) {
        return "Hello World";
    }

    @GET
    @Path("test")
    @Produces(MediaType.TEXT_HTML)
    public String showPage() {
        return "<h1>Index</h1>";
    }

}

web. xml

<?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"
         version="3.1">
<!-- Jersey 2 configuration data here -->
<servlet>
    <servlet-name>Jersey Web Application</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>api</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey Web Application</servlet-name>
    <url-pattern>/api/*</url-pattern>
</servlet-mapping>
</web-app>

...