Java 在动态web中显示404

Java 在动态web中显示404,java,ajax,xml,servlets,Java,Ajax,Xml,Servlets,显示未找到的404。我认为路径是正确的,没有显示错误。 让我来帮你 .java文件 @Path("/foods") public class FoodService { List<Food> foods; ArrayList<Food> foodCart = new ArrayList<>(); public FoodService() { foods = FoodController.getFoodList();

显示未找到的404。我认为路径是正确的,没有显示错误。 让我来帮你

.java文件

@Path("/foods")
public class FoodService {

    List<Food> foods;
    ArrayList<Food> foodCart = new ArrayList<>();

    public FoodService() {
        foods = FoodController.getFoodList();
    }

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public List<Food> getFoodList() {
        return foods;
    }
@Path(“/foods”)
公共级餐饮服务{
列出食物清单;
ArrayList foodCart=新的ArrayList();
公共食品服务{
foods=FoodController.getFoodList();
}
@得到
@产生(MediaType.APPLICATION_JSON)
公共列表getFoodList(){
归还食物;
}
web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
 <display-name>Food Service</display-name>

 <servlet>
 <servlet-name>food_service</servlet-name>
 <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
 <init-param>
 <param-name>jersey.config.server.provider.packages</param-name>
 <param-value>foodservice</param-value>
 </init-param>
 <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
 <servlet-name>food_service</servlet-name>
 <url-pattern>/rest/*</url-pattern>
 </servlet-mapping>

 <welcome-file-list>
 <welcome-file></welcome-file>
 </welcome-file-list>

</web-app>

餐饮服务
餐饮服务
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
餐饮服务
1.
餐饮服务
/休息/*

我试图获取值的链接:

您可以尝试用类FoodService所在的包名替换显示名和参数值标记值


请参阅,以防混淆。

因为您使用的是Servlet Spec 3.1,所以您使用的是相当现代的Glassfish版本。在这种情况下,您的生活太艰难了。我建议删除您的
web.xml
,或者将其改为基本为空:

<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">
</web-app>

这样,您就可以使用
http://localhost:8080//rest/foods
其中
webapp name
是您的web应用程序的名称。

我更改了您所说的方式。但仍在上面的链接中显示404您的web应用程序名称是什么?food\u service。但我创建的包是foodservice。我没有更改web.xml。我只是删除了然后你的url就是
http://localhost:8080/food_service/rest/foods
。在本例中,包名与URL无关。
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;


@ApplicationPath("/rest")
public class RestApplication extends Application {
    // intentionally empty
}