Java 未找到Jersey Rest API 404

Java 未找到Jersey Rest API 404,java,rest,api,jersey,Java,Rest,Api,Jersey,我试图学习如何在java上创建RESTAPI,但在测试时遇到了问题 当我尝试在localhost:8080/restService/prueba上获取时,我发现404找不到 本地主机也一样:8080/restService/vendedores 我尝试了一千种方法来制作URI,这只是我最后一次尝试 要部署打包为war的api,请启动java项目,并将.war粘贴到tomcat安装的webapps目录中,然后运行tomcat的startup.bat 这是muyweb.xml <?xml ve

我试图学习如何在java上创建RESTAPI,但在测试时遇到了问题

当我尝试在localhost:8080/restService/prueba上获取时,我发现404找不到 本地主机也一样:8080/restService/vendedores

我尝试了一千种方法来制作URI,这只是我最后一次尝试

要部署打包为war的api,请启动java项目,并将.war粘贴到tomcat安装的webapps目录中,然后运行tomcat的startup.bat

这是muyweb.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> 

再服务
泽西岛休息服务
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
com.arquimeda.capacion
jersey.config.server.provider.classnames
org.glassfish.jersey.jackson.JacksonFeature
1.
泽西岛休息服务
/再服务/*
这是我的家属

 <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>

org.glassfish.jersey.core
泽西服务器
2.30.1
org.glassfish.jersey.containers
jersey容器servlet
2.30.1
org.glassfish.jersey.inject
泽西-hk2
2.30.1
org.glassfish.jersey.media
泽西媒体公司
2.30.1
这是我的密码

package com.arquimeda.capacion;
导入java.util.ArrayList;
导入java.util.List;
导入javax.ws.rs.GET;
导入javax.ws.rs.Path;
导入javax.ws.rs.PathParam;
导入javax.ws.rs.products;
导入javax.ws.rs.core.MediaType;
@路径(“/restService”)
公共类服务{
@得到
@路径(“/vendedor/{vend_id}”)
@产生(MediaType.APPLICATION_JSON)
public Vendedor getvendedorprid(@PathParam(“vend_id”)int-id)引发异常{
VendedorDAO VendedorDAO=新VendedorDAO();
系统输出打印号(“hola”);
返回vendedorDAO.GetVendedOrpId(id);
}
@得到
@路径(“/vendedores”)
@生成(“应用程序/json”)
public List getVendedores()引发异常{
/*VendedorDAO VendedorDAO=新VendedorDAO();
系统输出打印号(“hola”);
返回vendedorDAO.getVendedores();
*/
Vendedor vend1=新Vendedor(5,“juan”,1,空,70);
Vendedor vend2=新的Vendedor(5,“juan”,1,空,70);
List lista=new ArrayList();
增加(1);
增加(2);
返回列表a;
}
@得到
@路径(“/prueba”)
@生成(MediaType.TEXT\u PLAIN)
公共字符串getPrueba(){
返回“hola”;
}
}

使用glassfish服务器而不是tomcat。我认为出现问题是因为您提到servlet类是glassfish,并使用了tomcat,请检查 无论是否部署,您还需要创建一个用于登录的用户。 转到TOMCAT_HOME/conf/TOMCAT-users.xml 再加上。。 对于玻璃鱼来说,这可能会对你有所帮助。


谢谢

使用glassfish服务器而不是tomcat。我认为出现问题是因为您提到servlet类是glassfish,并使用了tomcat,请检查 无论是否部署,您还需要创建一个用于登录的用户。 转到TOMCAT_HOME/conf/TOMCAT-users.xml 再加上。。 对于玻璃鱼来说,这可能会对你有所帮助。


谢谢

请尝试以下url。因为路径也被配置为restService

localhost:8080/restService/restService/vendedores

请尝试下面的url。因为路径也被配置为restService

localhost:8080/restService/restService/vendedores