Нет ошибки, вызванной приведенной ниже конфигурацией. Однако это не действует в конвертере Json. Я использую MethodInvokingBean
вместо MethodInvokingFactoryBean
, потому что я читал, что второй дает мне новый экземпляр, и я заинтересован в изменении текущего экземпляра, используемого RestTemplate
. Во всяком случае, я попробовал заводскую, и она также не действует. Честно говоря, после нескольких недель поисков мне интересно, действительно ли возможно изменить конфигурацию по умолчанию MapperObject
, когда она используется RestTemplate
. Конфигурация по умолчанию - игнорировать наносекунды, и я действительно спрашиваю себя, как кто-то еще использует RestTemplate
, когда есть требование наносекунд. Я могу исправить это, изменив sql.TimeStamp
на String
, но это не лучший подход. Если кто-то еще столкнулся с подобной проблемой и смог использовать sql.TimeStamp
с наносекундами либо путем изменения конфигурации Jackson Mapper, либо другим способом, я буду очень признателен за некоторые советы.
//все начинается здесь
ApplicationContext context = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
_myCllientOfRestService = context.getBean(MyCllientOfRestService.class, request, response);
_myCllientOfRestService.myMethod();
// myClientOfRestService
Public void myMethod(){
//it is not returning the nano seconds and I am sure the nano seconds is available in rest service return side. MyReturnType object has the sql.TimeStamp variable filled in with nanoseconds in the rest service side but it is lost in client side
_myReturnType = restTemplate.postForObject(urlRestService, myParameters,MyReturnType.class);
}
//applicationContext.xml
<bean id="myCllientOfRestService" class="com.someCompany.mhe.log.handler.MyCllientOfRestService" scope="prototype" lazy-init="true">
<property name="restTemplate" ref="restTemplate2" />
</bean>
<bean id="myMIB"
class="org.springframework.beans.factory.config.MethodInvokingBean">
<property name="targetObject" ref="jacksonObjectMapper" />
<property name="targetMethod" value="configure" />
<property name="arguments">
<list>
<value type="com.fasterxml.jackson.databind.SerializationFeature">WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS</value>
<value>true</value>
</list>
</property>
</bean>
<bean id="myMIB2"
class="org.springframework.beans.factory.config.MethodInvokingBean">
<property name="targetObject" ref="jacksonObjectMapper" />
<property name="targetMethod" value="configure" />
<property name="arguments">
<list>
<value type="com.fasterxml.jackson.databind.DeserializationFeature">READ_DATE_TIMESTAMPS_AS_NANOSECONDS</value>
<value>true</value>
</list>
</property>
</bean>
<bean id="restTemplate2" class="org.springframework.web.client.RestTemplate" >
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper" ref="jacksonObjectMapper" />
</bean>
</list>
</property>
</bean>