我正在开发Java代码,用于检查系统中是否存在文件以及是否已检出该文件。在这些检查之后,它调用CHECKIN_UNIVERSAL服务。这就是它停止的地方。签入新文件可以正常工作,但是签入现有文件会导致错误。
显示的特定错误(未对原始代码进行修改)是!cscheckinitemexists。一堆谷歌搜索引出了清除数据绑定器的解决方案,然后它出现了无法检索或使用安全令牌的错误。
这是我用来清除和检索数据绑定器的代码:
m_binder.clearResultSets();
m_binder.getLocalData().clear();
m_binder.setEnvironment(new IdcProperties(SharedObjects.getSecureEnvironment()));
答案 0 :(得分:0)
其余代码是什么样的?您可以链接到Gist。
一般来说,由于数据污染,我遇到了这种情况(如你所说)。
您是否有理由使用m_binder而不是创建全新的DataBinder?
在查看您的要点之后,您正在使用m_binder(来自服务的DataBinder)来执行CHECKIN_UNIVERSAL。不要这样做。使用单独的DataBinder(就像您为DOC_INFO_BY_NAME服务电话所做的那样)。
使用requestBinder或新的DataBinder。
答案 1 :(得分:0)
避免此问题的另一种方法是不查找结帐。 CHECKIN_UNIVERSAL支持一个标记,如果内容项尚未检出,则会检出该内容项。
添加标志" isForceCheckout"到你的活页夹,值为" 1"。