Проблемы с Jackson и ResultSet JAVA

152
16 ноября 2018, 11:10

У меня spring mvc. Я хожу в базу (PostgreSQL) вот так вот : select array_to_json(array_agg(t1)) from shops as t1

Потом я наивно надеюсь в контроллере сделать return прямо этого ResultSet, т.к он по факту уже JSON. Но Jackson мне говорит - "Не сегодня" и мы дружно падаем вот с таким Exception.

org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class org.postgresql.jdbc2.TimestampUtils]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.postgresql.jdbc2.TimestampUtils and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: org.postgresql.jdbc4.Jdbc4ResultSet["statement"]->org.postgresql.jdbc4.Jdbc4Statement["connection"]->org.postgresql.jdbc4.Jdbc4Connection["timestampUtils"])
org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:295)
org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:102)
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:272)
org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:180)
org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:82)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:119)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

Когда я отключил падение при пустых бинах я пожалел). Там было много разного и не понятного, но явно не ответ в формате JSON. Как дальше жить?

READ ALSO
VIM Android IDE

VIM Android IDE

Подскажите плагины с помощью которых можно полноценно разрабатывать android приложения

199
Параллельный запуск Test Suites

Параллельный запуск Test Suites

У меня есть два класса (TestSuite1 и TestSuite2), следующей конструкции:

153
JSP Bean class atribute is invalid

JSP Bean class atribute is invalid

Имеется такой класс:

129
Комментарии с noinspection вместо аннотаций @SuppressLint

Комментарии с noinspection вместо аннотаций @SuppressLint

Случайно обнаружил странную функциональностьЕсли в простом комментарии использовать конструкцию:

138