我正在尝试一个示例,它调用一个以'name'作为输入的restful java web服务并发布'hello name',如下所示:
@Path("/login")
public class LoginWS {
@POST
@Produces(MediaType.APPLICATION_JSON)
public NameBean getHello( NameBean nb ) throws JSONException{
System.out.println("starting pt");
String output="Hello "+ nb.getName();
nb.setName(output);
return nb;
}
}
这是我的NameBean类,用于映射JSON数据:
public class NameBean {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
在客户端,我使用ajax来调用它:
function Invoke(){
$.ajax({
type: "POST",
url: 'http://localhost:8080/OnlineJudgeDemo/api/login/',
data: JSON.stringify({
"name" : $("#haha").val()
}),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data, textStatus, jqXHR){
alert("wow!");
},
error: function(jqXHR, textStatus, errorThrown){
alert("sorry! " + textStatus+errorThrown);
}
});
}
但是,当调用invoke()函数时,它会给出415 Unsupported Media Type错误。
我已经检查了很多关于同一问题的其他Stack Overflow页面,但似乎都没有解决我的问题。
有人可以帮助我知道我哪里出错吗?
答案 0 :(得分:0)
尝试按如下方式重写您的服务:
@Path("/login")
public class LoginWS {
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public NameBean getHello( NameBean nb ) throws JSONException{
System.out.println("starting pt");
String output="Hello "+ nb.getName();
nb.setName(output);
return nb;
}
}