Java Liferay-远程创建的日志文章在发布之前不可显示

Java Liferay-远程创建的日志文章在发布之前不可显示,java,liferay,portlet,Java,Liferay,Portlet,我一直致力于在远程门户中创建一篇日志文章。我成功地创建了这篇文章。但当我试图通过Web内容显示搜索它时,它不可用 只有当我在远程门户中手动发布文章时,它才可用 有没有一种方法可以在不手动发布的情况下使文章可供显示 请按照下图进行澄清 新标题1是我在远程portlet中创建的JournalArticle。下图显示了创建后的文章 我尝试选择这篇文章来显示网页内容 正如你在上面看到的,我找不到这篇文章。 我回去手动发布这篇文章 然后我可以在web内容搜索中找到文章 这真的很痛苦,因为我们需

我一直致力于在远程门户中创建一篇日志文章。我成功地创建了这篇文章。但当我试图通过Web内容显示搜索它时,它不可用

只有当我在远程门户中手动发布文章时,它才可用

有没有一种方法可以在不手动发布的情况下使文章可供显示

请按照下图进行澄清

新标题1是我在远程portlet中创建的JournalArticle。下图显示了创建后的文章

我尝试选择这篇文章来显示网页内容

正如你在上面看到的,我找不到这篇文章。 我回去手动发布这篇文章

然后我可以在web内容搜索中找到文章

这真的很痛苦,因为我们需要在门户中创建日志后立即找到它。有人知道为什么会出现这个问题吗?解决这个问题的办法是什么

编辑:添加了在远程门户中创建日志文章的代码

journalArticleSoap = journalSoap.addArticle(
    remoteGroupId,
    journalFolderSoap.getFolderId(),
    article.getClassNameId(),
    article.getClassPK(),
    "",
    true,
    LocalizationUtil.getAvailableLanguageIds(article.getTitle()),
    titleMapValues.toArray(new String[titleMapValues.size()]),
    LocalizationUtil.getAvailableLanguageIds(article.getDescription()),
    descriptionMapValues.toArray(new String[descriptionMapValues.size()]),
    content,
    article.getType(),
    article.getStructureId(),
    remoteTemplateKey,
    article.getLayoutUuid(),
    displayDate.get(Calendar.MONTH),
    displayDate.get(Calendar.DAY_OF_MONTH),
    displayDate.get(Calendar.YEAR),
    displayDate.get(Calendar.HOUR),
    displayDate.get(Calendar.MINUTE),
    0, 0, 0, 0, 0, //expirationDate
    article.getExpirationDate() == null,
    0, 0, 0, 0, 0,
    true,
    article.isIndexable(),
    article.getUrlTitle(),
    serviceContext);
journalSoap
是远程门户的JournalArticleServiceSoap对象。
remoteGroupId
是远程门户的全局组id
journalFolderSoap
是在远程文件夹中创建的文件夹的journalFolderSoap对象。
文章
是本地门户中的日志文章。
remoteTemplateKey
是创建的远程模板的templateKey。

请尝试以下操作:

journalArticleSoap = journalSoap.addArticle(
    //your code
);

journalSoap.updateStatus(journalArticleSoap.getGroupId(),
    journalArticleSoap.getArticleId(), 1, WorkflowConstants.STATUS_APPROVED, 
    journalArticleSoap.getUrlTitle(), serviceContext);
试试这个:

journalArticleSoap = journalSoap.addArticle(
    //your code
);

journalSoap.updateStatus(journalArticleSoap.getGroupId(),
    journalArticleSoap.getArticleId(), 1, WorkflowConstants.STATUS_APPROVED, 
    journalArticleSoap.getUrlTitle(), serviceContext);

我不明白为什么会出现这个问题。但当我在管理控制面板下执行“重新索引所有搜索索引”时,我发现问题得到了解决

所以我写了一个代码来自动执行它,如下所示

try {
    String[] companyIdArray = new String[1];
    companyIdArray[0] = ""+PortalUtil.getDefaultCompanyId();
    Indexer indexer=IndexerRegistryUtil.getIndexer(JournalArticle.class);
    indexer.reindex(companyIdArray);
} catch (PortalException e) {
    e.printStackTrace();
} 

我在远程portlet控制器中提供了上述代码,并对其进行了REST调用。在创建日志文章后在远程环境中执行此操作修复了该问题。

我无法理解为什么会出现该问题。但当我在管理控制面板下执行“重新索引所有搜索索引”时,我发现问题得到了解决

所以我写了一个代码来自动执行它,如下所示

try {
    String[] companyIdArray = new String[1];
    companyIdArray[0] = ""+PortalUtil.getDefaultCompanyId();
    Indexer indexer=IndexerRegistryUtil.getIndexer(JournalArticle.class);
    indexer.reindex(companyIdArray);
} catch (PortalException e) {
    e.printStackTrace();
} 

我在远程portlet控制器中提供了上述代码,并对其进行了REST调用。创建Journal文章后在远程环境中执行此操作修复了此问题。

如何创建文章??你能给我们看一些代码吗?这似乎是一个工作流状态问题,可能在手动发布之前,文章处于挂起状态???@MarcoMercuri更新了创建文章的代码。如何创建文章??你能给我们看一些代码吗?这似乎是一个工作流状态问题,可能在手动发布之前,文章处于挂起状态???@MarcoMercuri使用创建文章的代码进行了更新。它似乎正在工作。。我会再测试一些并接受你的答案。谢谢:-)嗨。。很抱歉,它似乎不起作用-(好像它在起作用。)我会再测试一些并接受你的答案。谢谢:-)嗨。。很抱歉,它似乎不起作用-(