【问题标题】:RIDC Update against Oracle WCC 10G Server fails with Creation Date Invalid Error message针对 Oracle WCC 10G 服务器的 RIDC 更新失败,并显示“创建日期无效”错误消息
【发布时间】:2015-10-27 23:44:57
【问题描述】:

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

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

我试过了:

  1. dID 添加到新的 DataBinder,而不使用 dCreateDate
  2. 使用 dCreateDatedID 添加到新的 DataBinder

    • 添加 dCreateDate 作为日期对象(来自我尝试过的 DOC_INFO 响应)
      • 通过getDate()
      • 使用DataObjectEncodingUtils.decodeDate() 手动转换(带get()
    • 作为字符串添加
      • 使用 SimpleDateFormatter 进行转换,类似于 RIDC 的编码方式 (w/ getDate())
      • 使用DataObjectEncodingUtils.encodeDate() 手动转换(带getDate()
      • 作为“”
      • 作为 null
      • get() 而不是 getDate()
  3. 直接使用DOC_INFO的响应Binder

  4. 使用 11G RIDC 库(以上 3) 5 使用 10G RIDC 库(以上 1-3)

列出的所有方法都返回了相同的错误消息。

【问题讨论】:

  • 您从 DOC_INFO 收到的 dCreateDate 格式是什么?
  • 我使用java.util.date 作为日期变量,并使用databinder.getLocalData().setDate("dCreateDate", someDateVar); 设置它

标签: java oracle-ucm


【解决方案1】:

不应要求 dCreateDate 执行 UPDATE_DOCINFO。必须有某些上游(在 Content Server 内部,例如配置文件/规则或组件)导致该字段被要求和/或将其设置为一个值。即使您没有设置它,也有可能是某些东西导致该字段被设置(无论哪种方式,当您没有设置它时我都会转储活页夹,以确保它以某种方式没有被设置)。

我发现这篇文章您可能看过也可能没看过:http://onwardpath.com/2015/09/19/date-formatting-while-using-ridc.html,其中包含一些用于设置日期格式的附加信息。

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

【讨论】:

    【解决方案2】:

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

    更多信息可以在here找到。

    【讨论】:

      【解决方案3】:

      在与 Oracle Support 合作解决该问题后,我找到了答案。

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

      解决办法是:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-26
        • 2013-07-07
        • 1970-01-01
        • 1970-01-01
        • 2020-05-14
        • 2014-04-23
        • 2017-11-26
        • 2017-07-02
        相关资源
        最近更新 更多