我正在使用一个以AngularJS为客户端和泽西Rest WebService的应用程序。我能够通过使用angularJS$http.get()成功获取数据,但我很难将数据发布到服务器。我收到以下异常。
com.sun.jersey.spi.container.ContainerRequestgetEntity SEVERE:未找到Java类型、类dto.BookObject和MIME媒体类型(application/json; charset=utf-8)的消息正文读取器
package dto;
public class BookObject {
private long id;
private String author;
private String name;
private String series;
private int pages;
private boolean availability;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSeries() {
return series;
}
public void setSeries(String series) {
this.series = series;
}
public int getPages() {
return pages;
}
public void setPages(int pages) {
this.pages = pages;
}
public boolean isAvailability() {
return availability;
}
public void setAvailability(boolean availability) {
this.availability = availability;
}
}
var bookApp = angular.module('sharpLibraryApp', []);
bookApp.controller('bookAppCtrl', function($scope, $http) {
$http.get("http://localhost:8080/RESTfulProject/REST/WebService/GetBooks").
then(function(response) {
$scope.books = response.data;
},
function getError(response) {
});
$scope.addBook = function() {
alert('Adding book...');
$scope.books.push({"id": $scope.id, "name": $scope.name, "author": $scope.author, "pages": $scope.pages, "availability": $scope.availability });
alert('books data:');
var bookObj = {'id' : $scope.id, 'name' : $scope.name, 'author' : $scope.author, 'pages' : $scope.pages, 'availability' : $scope.availability
};
$http({
method : "POST",
url : "http://localhost:8080/RESTfulProject/REST/WebService/storeBook",
dataType: 'json',
data: '',
headers: {
"Content-Type": "application/json"
}
}, bookObj).then(function(response) {
alert('success');
$scope.message = response.data;
}, function(response) {
alert('failure');
$scope.message = response.status;
});
/* $http.post('http://localhost:8080/RESTfulProject/REST/WebService/storeBook', bookObj).
then(function(response) {
alert('success');
$scope.message = response.data.statusText;
},
function myError(response) {
alert('failed' + response.status);
$scope.message = response.data.statusText;
});
*/ $scope.id = "";
$scope.name = "";
$scope.author = "";
$scope.pages = "";
$scope.availability = false;
};
$scope.resetBook = function() {
$scope.id = "";
$scope.name = "";
$scope.author = "";
$scope.pages = "";
$scope.availability = false;
};
});
bookApp.controller('optionCtrl', function($scope, $http) {
$scope.options = ["true", "false"];
});
package webService;
import java.util.List;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import model.LibraryManager;
import com.google.gson.Gson;
import dto.BookObject;
@Path("/WebService")
public class BookService {
LibraryManager libraryMgr = new LibraryManager();
Gson gson = new Gson();
@GET
@Path("/GetBooks")
@Produces("application/json")
public String book()
{
String books = null;
try
{
List<BookObject> bookData = libraryMgr.GetBooks();
System.out.println(gson.toJson(bookData));
books = gson.toJson(bookData);
} catch (Exception e)
{
System.out.println("error");
}
return books;
}
@POST
@Path("/storeBook")
@Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, "application/x-www-form-urlencoded"})
public Response putBooks(BookObject bookObj) {
try {
libraryMgr.storeBooks(bookObj);
} catch (Exception e) {
e.printStackTrace();
}
return Response.ok().build();
}
}
在fiddler响应中,我可以看到下面的错误消息:HTTP错误415不支持的媒体类型
请建议我改掉上面提到的错误。
我已经注释了我的POJO(@xmlRootElement),我没有在我的项目中使用Maven。这个问题可以通过放置新的泽西图书馆来解决,Ealrier我使用的是泽西-1.3.jar但我使用的是1.7版本的泽西岛。
POJO中缺少注释@XmlRootElement
,因此jersey无法找出如何解组JSON。
我正在使用jersey客户端调用rest webservice。 我的网络服务正在使用json,所以我需要让json打电话给我的网络服务提供商。 我用下面的方法做这件事。 但是我得到了以下异常: 09:52:01,625错误[[MVC-dispatcher]]servlet MVC-dispatcher的Servlet.service()抛出异常com . sun . jersey . API .
问题内容: 在尝试找出我的问题之后,我终于决定问您如何解决我的问题。我见过不同的人有相同的问题,我尝试了所有建议他们做的事情,但没有任何帮助解决我的问题。所以基本上我有一个使用Jersey进行构建的RESTful服务。对于我的客户,我想返回JSON格式的对象。我通读了不同的教程,并决定使用jersey- json-1.8库是有意义的。我像往常一样将所有内容添加到我的项目中,并尝试运行它,但是每次调
问题内容: 我正在测试RESTful服务,当我执行RESTful服务时,尽管我的类路径(WEB-INF / lib)中包含以下jar,但是却遇到异常,但我没有使用Maven,而我的JDK版本是1.5。有关此问题的其他问题无助于解决问题。 程式码片段 web.xml 罐子清单 异常堆栈 我该如何解决这个问题? 问题答案: 确保您的项目中没有多个Jersey版本。在您提供的列表中,有3个不同版本(1.
问题内容: 我正在使用Jersey来构建REST服务,并希望返回XML。 但是我的尝试失败,但有以下异常: javax.ws.rs.WebApplicationException:com.sun.jersey.api.MessageException:Java类java.util.ArrayList和Java类型类java.util.ArrayList和MIME媒体类型text / xml的消息正
嗨,有人能帮我处理这个错误吗?当我使用邮递员发送邮件请求时,这里是我的控制器 这就是我使用postman发送json的方式 我正在尝试搜索如何修复它,但错误仍然存在 编辑:这是邮递员的标题 提前致谢
我正在使用Jersey构建REST服务,并希望返回一个< code >集合 但我的尝试失败了,但有以下例外: javax.ws.rs.WebApplicationException:com.sun.jersey.api。MessageException:Java类Java.util的消息体编写器。ArrayList和Java类型类Java.util。找不到ArrayList和MIME媒体类型tex