我想在Liferay中編輯webcontent(journalarticle),並根據定製portlet創建新版本。我稱之爲JournalArticleLocalServiceUtil.addArticle()
方法具有以下相關參數:在Liferay中添加新的web內容版本
articleId = article.getArticleId();
autoArticleId = false;
version = article.getVersion()+0.1;
所以老條款ArticleID和版本增加。
此代碼適用於LR 6.1.30EE,但在6.1.20EE和6.1.1CE中,我獲得了DuplicateArticleIdException
。這是早期版本中的錯誤嗎?有沒有一種解決方法或其他方法以編程方式創建現有web內容的新版本?
小問題:增加版本的正確模式是什麼?上面的+0.1方法是從v1.1 v1.200000000000002創建的,但簡單地說v1.2會更好。
注意: updateArticle()
使用新版本的方法也不起作用,它會拋出ArticleVersionException
。這似乎是正確的行爲,因爲它應該更新已經存在的內容。
你能更具體?我得到這個相同的錯誤,LR 6.2sp11。就我而言,我正在讀取文章,使用'.getVersion()'獲取版本,並將返回的版本直接傳遞給'updateArticle()'。如果我手動增加版本,我得到一個錯誤,說LR找不到文章。如果我通過原始版本,我會得到'ArticleVersionException',而沒有其他描述什麼是錯的。 – CodeChimp 2015-12-31 00:21:36
我這樣做,將'.getVersion()'的返回值傳遞給'updateArticle()'。你確定你正在獲取這篇文章的最新版本嗎? (例如通過使用'JournalArticleLocalServiceUtil.getLatestArticle()') – ttamas 2015-12-31 12:06:33