我试图用泽西框架实现一个资源。 但是,如果我打电话给我的资源,我会得到解析异常,解析器无法解析JSONArray数据类型。泽西问题解析一个JSONArray
这里是我的资源结构:
@Path("/books")
@Consumes("application/json")
public class BookResource {
@GET
@Produces("application/json")
public JSONArray getAllBooksOfCurrentUser() {
Book book = new Book();
book.initDummyBook();
JSONArray books = new JSONArray();
Page page = new Page();
page.setBook(book);
page.setNumber(22);
ReadStatistic readStatistic = new ReadStatistic();
readStatistic.setLastReadAt(new Date());
readStatistic.setLastPageRead(page);
books.put(book.simpleRepresantationWithLastReadAsJson(readStatistic));
return books;
}
}
这是个例外:
29.10.2010 11时42分57秒org.apache.catalina.core.StandardWrapperValve调用 SCHWERWIEGEND:servlet的Servlet.service()ServletAdaptor抛出异常 org.codehaus.jackson.map.JsonMappingException:找不到类org.codeha的序列化程序us.jettison.json.JSONArray并没有发现创建BeanSerializer的属性(以避免异常,禁用SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS)) at org.codehaus.jackson.map.ser.StdSerializerProvider $ 1.serialize(StdSerializerProvider.java:62) 在org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:296) 在org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:224) 在org.codehaus。 jackson.map.ObjectMapper.writeValue(ObjectMapper.java:925) at org.codehaus.jackson.jaxrs.JacksonJsonProvider.writeTo(JacksonJsonProvider.java:497) at com.sun.jersey.spi.container.ContainerResponse.write( ContainerResponse.java:299) at com.sun.jersey.server.impl.application.WebApplicationImpl。 _handleRequest(WebApplicationImpl.java:1326) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1239) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest( WebApplicationImpl.java:1229) at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:420) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer。 java:497) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:684) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org。 apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterCha (org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) 在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 在org.apache.catalina.core。 StandardEngineValve.invoke(StandardEngineValve.java:108) 在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) 在org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879) at org.apache.coyote.http11.Http11BaseProtocol $ Http11ConnectionHandler.processConnection(Http11BaseProtocol.java: 665) 在org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) 在org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) 在有机apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run(ThreadPool.java:689) 在java.lang.Thread.run(Thread.java:680)
有谁知道什么回事?