0

私は、Tomcat サーバーと Oracle 10g データベースにバンドルされている Liferay 6.1.1-ce-ga2 を使用しています。私の目標は、ジャーナル記事としていくつかのコンテンツを挿入し、それらを Asset Publisher に表示することです (構造とテンプレートを使用して、既に機能しています)。

JournalArticleServiceSoap.addArticle(...)は右のフィールドで使用しました(groupid, structureid, templateid, ...)。コンテンツはデータベースに「正しく」挿入されており、管理者のコンテンツ パネルから Web コンテンツ内でそれらを見ることができます。中身は"Approved"ステータスも兼ねています。これは、次のように設定することによって行われます。

serviceContext.setWorkflowAction(WorkflowConstants.ACTION_PUBLISH)

ただし、編集用に再度開いて公開ボタンをクリックするまで (何も変更しなくても)、Asset Publisher に挿入されたコンテンツが他のコンテンツと共に表示されません。その後、コンテンツは期待どおりに公開されます。問題はコンテンツの数です。約 600 ですので、それぞれに対してこのアクションを実行することはできません。

何が問題なのか、それを理解する方法がわかりませんか?つまり、Web サービスによって挿入された Web コンテンツを Asset Publisher で自動的に表示するにはどうすればよいでしょうか?

または、"Publish"SOAP サービス (ま​​たは挿入後の SQL) を使用してプログラムで再現できるようにするには、正確には何をしますか?

よろしくお願いいたします。

Liferay のフォーラムにも同じ質問を投稿しました: SOAP Web サービスによって挿入された JournalArticle を表示する問題

4

3 に答える 3

0

Liferay からアクセスしているデータベースをログに記録して、記事を手動で保存した後に何が変更されるかを確認できます。ここでは、hibernate のログ レベルを info または debug に設定します。

于 2013-03-29T06:35:07.770 に答える
0

次のように 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);
于 2016-05-22T14:25:30.887 に答える
0

このようにserviceContextを設定していますか?

ServiceContext serviceContext = new ServiceContext();
serviceContext.setAddGuestPermissions(true);
serviceContext.setAddGroupPermissions(true);
serviceContext.setScopeGroupId(groupId);
serviceContext.setWorkflowAction(WorkflowConstants.ACTION_PUBLISH);
于 2013-03-29T18:43:53.237 に答える