针对Oracle WCC 10G服务器的RIDC更新失败,并显示创建日期无效错误消息

时间:2015-10-05 13:19:24

标签: java oracle-ucm

我有一个应用程序通过RIDC执行对内容项的更新。该项目是通过 Content ID 指定的。由于 UPDATE_DOCINFO 服务需要 dID ,因此首先运行 DOC_INFO 服务以获取它。

DOC_INFO 返回信息就好了。但是,当 UPDATE_DOCINFO 运行时,它似乎总是返回一条错误消息,指示创建日期无效。内容项通过Native Web UI更新而没有该错误消息。我的代码在指向Oracle WCC 11G服务器时有效。

我试过了:

  1. dID 添加到新的DataBinder,不包含 dCreateDate
  2. 使用 dCreateDate

    dID 添加到新的DataBinder
    • dCreateDate 添加为日期对象(来自 DOC_INFO 响应我已尝试过)
      • 通过getDate()
      • 使用DataObjectEncodingUtils.decodeDate()(w / get()
      • 进行手动转换
    • 以字符串形式添加
      • 使用SimpleDateFormatter进行转换,类似于RIDC编码的方式(w / getDate()
      • 使用DataObjectEncodingUtils.encodeDate()(w / getDate()
      • 进行手动转换
      • as""
      • null
      • get()代替getDate()
  3. 直接使用 DOC_INFO 的响应Binder

  4. 使用11G RIDC库(上面3) 5使用10G RIDC库(上面1-3)
  5. 列出的所有方法都返回了相同的错误消息。

3 个答案:

答案 0 :(得分:1)

dCreateDate不应该被要求执行UPDATE_DOCINFO。必须有一些上游(在Content Server内部,例如配置文件/规则或组件)导致需要该字段和/或将其设置为值。即使你没有设置它,也有可能导致这个字段被设置(无论哪种方式,当你没有设置它以确保它是合适的时候它不知何故得到了设定。

我发现您可能会看到或未看过这篇文章:http://onwardpath.com/2015/09/19/date-formatting-while-using-ridc.html其中包含一些有关设置日期格式的其他信息。

在Content Server日志中发布堆栈跟踪的内容(如果有)可能会有所帮助。

答案 1 :(得分:0)

尝试使用oracle.stellent.ridc.model.impl.DataObjectEncodingUtils.decodeDate将String(格式为2010-02-04 06:00:00Z)转换为Java Calendar对象。

可以找到更多信息here

答案 2 :(得分:0)

在就此问题与Oracle支持人员合作之后,我找到了答案。

RIDC 默认为 ISO8601 格式化日期。但是,我的服务器使用的是不同的日期格式。

解决方案是:

  1. RIDC Binder 上设置 UserDateFormat 属性。
  2. 使用匹配的格式将所有日期序列化为 RIDC Binder