我在我的 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
类,如下所示:
@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 类中的路径变量。/输入翻译为http://localhost:8001/input/post这可能不是你想要的。
您还在 Java 文件中重新声明了 @Path 变量两次。一次在 InputResponse 类定义之前,一次在 InputResponse 类本身内部。
关于java - Ajax post无法找到URL,这导致java类带有注释。给出错误 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32599609/