Обновление RIDC для сервера Oracle WCC 10G завершается сбоем с сообщением об ошибке «Недопустимая дата создания»

У меня есть приложение, которое выполняет обновление элемента содержимого через RIDC. Элемент указывается через Content ID. Поскольку службе UPDATE_DOCINFO требуется dID, сначала запускается служба DOC_INFO, чтобы получить его.

DOC_INFO отлично возвращает информацию. Однако при запуске UPDATE_DOCINFO кажется, что он всегда возвращает сообщение об ошибке, указывающее, что Дата создания недействительна. Элемент содержимого обновляется без этого сообщения об ошибке через собственный веб-интерфейс. Мой код работает, когда он указан на сервере Oracle WCC 11G.

Я пытался:

  1. Добавление dID в новый DataBinder без dCreateDate
  2. Добавление dID в новый DataBinder с dCreateDate

    • adding dCreateDate as a date Object (from DOC_INFO response I've tried)
      • via getDate()
      • ручное преобразование с DataObjectEncodingUtils.decodeDate()get())
    • adding as a string
      • converting with SimpleDateFormatter similar to How RIDC encodes (w/ getDate())
      • ручное преобразование с DataObjectEncodingUtils.encodeDate()getDate())
      • as ""
      • как нулевой
      • get() вместо getDate()
  3. Непосредственно используя ответ DOC_INFO Binder

  4. Использование библиотеки 11G RIDC (3 выше) 5 Использование библиотеки 10G RIDC (1-3 выше)

Все перечисленные подходы вернули одно и то же сообщение об ошибке.


person Raystorm    schedule 05.10.2015    source источник
comment
Какой формат вы получаете для dCreateDate из DOC_INFO?   -  person Jonathan Hult    schedule 05.10.2015
comment
Я использую java.util.date для переменной даты и устанавливаю ее с помощью databinder.getLocalData().setDate("dCreateDate", someDateVar);   -  person Raystorm    schedule 06.10.2015


Ответы (3)


dCreateDate не должен требоваться для выполнения UPDATE_DOCINFO. Должно быть что-то восходящее (внутри Content Server, такое как профиль/правило или компонент), заставляющее это поле быть обязательным и/или устанавливающее для него значение. Также возможно, что что-то вызывает установку этого поля, даже если вы его не устанавливаете (в любом случае я бы сбросил подшивку, когда вы ее не устанавливаете, просто чтобы убедиться, что она каким-то образом не устанавливается).

Я нашел эту статью, которую вы могли видеть или не видеть: http://onwardpath.com/2015/09/19/date-formatting-while-using-ridc.html, который содержит некоторую дополнительную информацию для настройки формата даты.

Что может помочь, так это публикация того, как выглядит трассировка стека (если есть) в журналах Content Server.

person Aaron Romine    schedule 12.10.2015

Попытка использования с помощью oracle.stellent.ridc.model.impl.DataObjectEncodingUtils.decodeDate для преобразования строки (в формате 2010-02-04 06:00:00Z) в объект календаря Java.

Дополнительную информацию можно найти здесь.

person Jonathan Hult    schedule 05.10.2015

После работы с поддержкой Oracle по этому вопросу я нашел ответ.

RIDC по умолчанию использует дату в формате ISO8601. Однако мой сервер использует другой формат даты.

Решение было:

  1. Установите свойство UserDateFormat в связывателе RIDC.
  2. Serialize all dates into the RIDC Binder with a matching format.
person Raystorm    schedule 27.10.2015