Я пытаюсь узнать, как создать Rest API на java, и у меня возникли проблемы при его тестировании.
Я получаю 404 Not Found, когда я пытаюсь попасть на localhost: 8080 / restService / prueba то же самое для localhost: 8080 / restService / vendedores
Я пробовал тысячу способов сделать URI, это последний способ, которым я его пробовал.
Чтобы развернуть api y, упакованный как war проект java и вставьте .war в каталог webapps моей установки tomcat и запустите startup.bat tomcat
Это muy web. xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>restService</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<!-- Register resources and providers under com.vogella.jersey.first package. -->
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.arquimeda.capacitacion</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>org.glassfish.jersey.jackson.JacksonFeature</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/restService/*</url-pattern>
</servlet-mapping>
</web-app>
Это мои зависимости
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.30.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.30.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
<version>2.30.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.30.1</version>
</dependency>
</dependencies>
А это мой код
package com.arquimeda.capacitacion;
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/restService")
public class RestService {
@GET
@Path("/vendedor/{vend_id}")
@Produces(MediaType.APPLICATION_JSON)
public Vendedor getVendedorPorId(@PathParam("vend_id")int id) throws Exception {
VendedorDAO vendedorDAO = new VendedorDAO();
System.out.println("hola");
return vendedorDAO.getVendedorPorId(id);
}
@GET
@Path("/vendedores")
@Produces("application/json ")
public List<Vendedor> getVendedores() throws Exception {
/*VendedorDAO vendedorDAO = new VendedorDAO();
System.out.println("hola");
return vendedorDAO.getVendedores();
*/
Vendedor vend1 = new Vendedor(5,"juan",1,null,70);
Vendedor vend2 = new Vendedor(5,"juan",1,null,70);
List<Vendedor> lista = new ArrayList<Vendedor>();
lista.add(vend1);
lista.add(vend2);
return lista;
}
@GET
@Path("/prueba")
@Produces(MediaType.TEXT_PLAIN)
public String getPrueba(){
return "hola";
}
}