В настоящее время я пытаюсь создать спокойный сервис с помощью 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>