将Json对象从AngularJs发布到java JAX-RS服务
我在谷歌上搜索了几个小时,但还是找不到解决办法 这是我的java代码将Json对象从AngularJs发布到java JAX-RS服务,java,angularjs,jersey,Java,Angularjs,Jersey,我在谷歌上搜索了几个小时,但还是找不到解决办法 这是我的java代码 @POST public String doLogin(User user) { System.out.println(" = " + user.getUsername()); return ""; } 及 这是我的AngularJs代码 angular.module('notesApp', []).controller('MainCtrl', ['$http', function($http)
@POST
public String doLogin(User user) {
System.out.println(" = " + user.getUsername());
return "";
}
及
这是我的AngularJs代码
angular.module('notesApp', []).controller('MainCtrl', ['$http', function($http) {
var self = this;
self.submit = function() {
$http({
method: 'POST',
url: 'http://127.0.0.1:8080/Test/app/login',
headers : {'Content-Type': 'application/json'},
data: self.user //forms user object
})
.then(function(response) {
console.log(response.data);
return response.data;
}, function(response) {
});
}
}]);
我的错误消息是:
严重:用于Java类实体.User和Java类型类实体.User以及MIME媒体类型application/json的消息体读取器;未找到charset=UTF-8,因为我无法访问java代码中的“user”对象
你能找出我做错了哪一部分吗?非常感谢。删除查询参数您将得到一个序列化字符串。将其反序列化到用户
@POST
public String doLogin(User user) {
System.out.println(" = " + user.getUsername());
return "";
}
您正在设置帖子上的数据字段。这将设置HTTP正文,而不是HTTP查询参数。您需要从POST正文而不是查询参数中读取
您可以使用以下选项:
@POST
public String doLogin( User user) {
System.out.println(" = " + user.getUsername());
return "";
}
@QueryParam用于将作为?用户传递的QueryParam=xyz@gmail.com检查浏览器调试器网络面板,确保您正在向服务器发送期望的内容。将打开它,然后“发送”您的用户并查看发送的内容。此对象是否与java用户期望的完全相同?首先非常感谢您的帮助。我之前试过了,我收到了这个错误信息。严重:用于Java类实体.User和Java类型类实体.User以及MIME媒体类型application/json的消息体读取器;未找到字符集=UTF-8。
@POST
public String doLogin( User user) {
System.out.println(" = " + user.getUsername());
return "";
}