Я пытаюсь реализовать ресурс с каркасом джерси. Но если я вызову свой ресурс, я получу исключение синтаксического анализа, что синтаксический анализатор не сможет проанализировать тип данных 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 invoke SCHWERWIEGEND: 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) на org.codehaus.jackson.jaxrs.JacksonJsonProvider.writeTo (JacksonJsonProvider.java:497) на com.sun.jersey.spi.container.ContainerResponse.write (ContainerResponse.java:299) at com.sun.jersey.server.impl.application.WebApplicationImpl. _handleRequest (WebApplicationImpl.java:1326) на com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest (WebApplicationImpl.java:1239) на 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 in.doFilter (ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:213) at 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)
кто-нибудь знает, что происходит не так?