Ajax post 无法找到 URL,这导致 java class,带有注释。给出错误 404

Ajax post is unable to find the URL, which leads to java class, with annotations. Gives error 404

我在我的 Java Script 文件中这样写了我的 ajax post: 其中 obj1 是一个 Stringified JSON 对象。

$.ajax({
    url:'./rest/input/post',
    type: 'POST',
    data:obj1,
    contentType: 'application/json',
    dataType:'json',
    success:function(data)
    {
        var values = JSON.stringify(data);
        alert(values);
    },
},'json');

我将其传递给 Java class,如下所示:

@Path("/input")
public class InputResponse {
@POST
@Path("/post")
@Consumes(MediaType.APPLICATION_JSON) 
@Produces(MediaType.APPLICATION_JSON)
     public Input postInputRecord(Input obj){
         return obj;
     }
}

我的Web.xml文件如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
metadata-complete="true">
<display-name>CAD</display-name>
<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>com.cad.example.response</param-value>
</init-param>
<init-param>
    <param-name>com.sun.jersey.config.property.packages</param-name>
    <param-value>com.cad.data.model</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>

这是 maven 项目: 我 运行 它在 Jetty Server 上,同时调用 url “http://localhost:8001/project_name/rest/input/post” 但它给我 404 错误。除此以外,控制台中没有错误。 为什么会这样?我该如何解决这个问题? 非常感谢任何建议。

查看 Java class 中的路径变量。 /input 翻译为 http://localhost:8001/input/post 这可能不是你想要的。

您还在 Java 文件中两次重新声明 @Path 变量。一次在 InputResponse class 定义之前,一次在 InputResponse class 本身内部。