![](/img/trans.png)
[英]unable to call rest web service from html/javascript with parameter
[英]fetch call from javascript unable to reach java REST service
我正在學習REST API,並嘗試使用fetch從Javascript調用用Java編寫的POST服務。 當@Produces和@Consumes為MediaType.APPLICATION_JSON時,請求未到達服務
我還在同一API中定義了其他簡單的POST和GET方法,這些方法可以正常工作,但是當我必須發送和接收JSON數據時,這種方法無法正常工作。
以下是我的提取調用:
let options = {
method: "POST",
headers: new Headers({'content-type': 'application/json'}),
body: JSON.stringify({
"Title": "title"
})
};
const url = "http://localhost:8080/myserver/data/list";
return fetch(url, options);
以下是我的REST API:
@Path("/data")
public class Controller {
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Path("/list")
public Response createList(CreateListJsonData dta) throws IOException {
System.out.println("in create list");
return Response.status(200)
.entity("{\"dummykey\"}:\"dummyVal\"")
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT")
.build();
}
CreateListJsonData類如下:
@XmlRootElement
public class CreateListJsonData {
private String Title;
public String getTitle() {
return Title;
}
public void setTitle(String title) {
Title = title;
}
}
web.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" version="3.0">
<display-name>myserver</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.myserver</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
我在Eclipse的tomcat上運行API。 當我觸發請求時,控制台上顯示以下消息:
com.sun.jersey.server.wadl.generators.AbstractWadlGeneratorGrammarGenerator attachTypes
INFO: Couldn't find grammar element for class javax.ws.rs.core.Response
有人可以幫我弄清楚我的錯誤嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.