как использовать MethodInvokingBean для настройки Json Converter, чтобы он не терял наносекунды из sql.TimeStamp

Нет ошибки, вызванной приведенной ниже конфигурацией. Однако это не действует в конвертере 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>

person Jim C    schedule 06.01.2015    source источник
comment
Вы проверяли JAXB, мы используем его в нашем проекте, это не ответ, но может быть подсказкой, пожалуйста, проверьте stackoverflow.com/questions/14734741/ и спросите для дальнейшего вопроса   -  person erhun    schedule 07.01.2015
comment
Если я правильно понял, вы предлагаете мне убрать Джексона из пути к классам моего проекта и добавить Jaxb. Я вообще не использую xml. Я только разрабатываю Rest Web Service для работы с Json. Будет ли это работать с Jaxb? Что еще более важно, будет ли RestTemplate работать с Jaxb, и я смогу получить наносекунды из переменной sql.Timestamp? Я могу удалить RestTemplate и вызвать остальную службу из HttpClient или любого другого рекомендуемого объекта, если я могу получить наносекунды.   -  person Jim C    schedule 07.01.2015
comment
Я не знаю, работает ли он с наносекундами, но JAXB - это не только средство отображения XML, вы также можете использовать его для отображения JSON, поэтому я предлагаю использовать его. Вы можете проверить mkyong. com/веб-сервисы/jax-rs/   -  person erhun    schedule 07.01.2015