API 404 для отдыха Jersey Rest не найден - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь узнать, как создать 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";
    }
}

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Попробуйте использовать адрес, как показано ниже. поскольку путь также настроен как restService

localhost:8080/restService/restService/vendedores
0 голосов
/ 06 мая 2020

Используйте сервер glassfi sh, а не tomcat. Я думаю, что проблема возникает из-за того, что вы упоминаете, что класс сервлета - это glassfi sh и использовал tomcat, и, пожалуйста, проверьте http://localhost: 8080 / manager / text / list , который развернут или нет, вам также необходимо создать пользователь для входа в систему. go в TOMCAT_HOME / conf / tomcat-users. xml и добавьте это .. а для glassfi sh это может вам помочь. Куда мне поместить файл .war на сервере glassfi sh?

Спасибо

...