AjaxPost无法找到URL,这导致了带有注释的java类。给出错误404

AjaxPost无法找到URL,这导致了带有注释的java类。给出错误404,java,ajax,maven,jetty,jax-rs,Java,Ajax,Maven,Jetty,Jax Rs,我在Java脚本文件中编写了我的ajaxpost,如下所示: 其中,obj1是字符串化的JSON对象 $.ajax({ url:'./rest/input/post', type: 'POST', data:obj1, contentType: 'application/json', dataType:'json', success:function(data) { var values = JSON.stringify(d

我在
Java脚本
文件中编写了我的
ajax
post
,如下所示: 其中,obj1是字符串化的
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
类,如下所示:

@Path("/input")
public class InputResponse {
@POST
@Path("/post")
@Consumes(MediaType.APPLICATION_JSON) 
@Produces(MediaType.APPLICATION_JSON)
     public Input postInputRecord(Input obj){
         return obj;
     }
}
<?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>
我的
Web.xml
文件如下:

@Path("/input")
public class InputResponse {
@POST
@Path("/post")
@Consumes(MediaType.APPLICATION_JSON) 
@Produces(MediaType.APPLICATION_JSON)
     public Input postInputRecord(Input obj){
         return obj;
     }
}
<?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>

计算机辅助设计
Jersey Web应用程序
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
com.cad.example.response
com.sun.jersey.config.property.packages
com.cad.data.model
1.
Jersey Web应用程序
/休息/*
这是
maven
项目: 我在
Jetty
服务器上运行它,同时调用url“”
但它给了我
404
错误。除此之外,console中没有错误。 为什么会这样?我怎样才能解决这个问题?
非常感谢您的建议。

查看Java类中的path变量/输入翻译为可能不是您想要的


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

还要查看ajax调用的url值。单点斜杠是工作目录。这里有一个链接解释了./和../之间的路径差异。请看我的web.xml,我已将url模式指定为/rest/*,而对于GET ajax请求,同样的东西总体上对我来说运行良好。@lawrence thorne