Web services Liferay web服务
我使用与Tomcat服务器和Oracle 10g数据库捆绑在一起的Liferay 6.1.1-ce-ga2。 我的目标是插入一些内容,如期刊文章,并在资产发布器中显示它们(具有结构和模板,已经在工作) 我使用了带有正确字段的Web services Liferay web服务,web-services,soap,liferay,Web Services,Soap,Liferay,我使用与Tomcat服务器和Oracle 10g数据库捆绑在一起的Liferay 6.1.1-ce-ga2。 我的目标是插入一些内容,如期刊文章,并在资产发布器中显示它们(具有结构和模板,已经在工作) 我使用了带有正确字段的(groupid、structureid、templateid等)的JournalArticleServiceSoap.addArticle(…)。这些内容“正确”插入到数据库中,我可以在管理员内容面板的web内容中看到它们。内容的状态也为“已批准”。这是通过设置: serv
(groupid、structureid、templateid等)的JournalArticleServiceSoap.addArticle(…)
。这些内容“正确”插入到数据库中,我可以在管理员内容面板的web内容中看到它们。内容的状态也为“已批准”。这是通过设置:
serviceContext.setWorkflowAction(WorkflowConstants.ACTION_PUBLISH)
但是,我无法看到插入的内容与资产发布器中的其他内容一起显示,直到我再次打开它进行编辑并单击“发布”按钮(即使没有更改任何内容)。然后按预期发布内容。问题在于内容的数量。它大约是600,所以我不能为每一个做这个动作
我不明白是怎么回事,怎么弄清楚?换句话说,我必须做什么才能使web服务插入的web内容自动显示在Asset Publisher中
或者,“Publish”
到底做了什么,以便我可以尝试使用SOAP服务(或插入后的SQL)以编程方式再现
提前感谢您的帮助
我也在Liferay论坛上发布了同样的问题:您可以尝试记录从Liferay访问的数据库,并查看在手动保存文章后会发生什么变化。在此,请将hibernate的日志记录级别设置为info或debug。您是这样设置serviceContext的吗
ServiceContext serviceContext = new ServiceContext();
serviceContext.setAddGuestPermissions(true);
serviceContext.setAddGroupPermissions(true);
serviceContext.setScopeGroupId(groupId);
serviceContext.setWorkflowAction(WorkflowConstants.ACTION_PUBLISH);
必须按如下方式设置serviceContext:
ServiceContext serviceContext = new ServiceContext();
//serviceContext.setAddGuestPermissions(true);
//serviceContext.setAddGroupPermissions(true);
serviceContext.setScopeGroupId(groupId);
serviceContext.setWorkflowAction(1);
serviceContext.setIndexingEnabled(true);
serviceContext.setIndexingEnabled(true);这是非常重要的
以下代码不是必须重新输入的代码
serviceContext.setAddGuestPermissions(true);
serviceContext.setAddGroupPermissions(true);
是的,Mariol,我的设置是这样的,但仍然不起作用。作为参考,在journalArticleServiceSoap.addArticle
方法中,我将structureId替换为null,因为在6.1.1版本的liferay中,设置此值会导致java.rmi.RemoteException。当然,在数据库中,我将structureId替换为正确的值。另外,当我将插入的行与另一行(以DB为单位)进行比较时,我看不到任何差异。我在查看我编写的一些代码,发现我使用了WorkflowConstants.STATUS\u APPROVED而不是WorkflowConstants.ACTION\u Publish。现在插入的内容的状态为“APPROVED”。但它仍然没有直接显示,我必须通过LR“publish”按钮再次发布它。在哪里可以使用hibernate级别记录从Liferay访问数据库?ThxAlright,我通过在portal-ext.propertieshibernate.show_sql=true log4j.logger.org.hibernate=info
中添加以下内容来找到记录数据库的方法。addArticle(…)方法和发布操作似乎使用相同的SQL操作(插入和更新)。我正在努力理解数百行代码,如果我找到了解决方案,我将与大家分享。