アセットの選択が手動に設定されている場合、Asset Publisher の選択ボタンが表示されない

問題

手動でアセットを選択するようにアセット パブリッシャーを構成すると、アセット エントリの選択ボタンが表示されません。

再現手順:

    1. バニラ DXP 7.2 を作成し、portal-ext.properties に次のプロパティを追加します。
    2. scheduler.enabled=false
    3. 管理者としてログイン
    4. Asset Publisher を任意のページに追加する
    5. Asset Publisher で Configuration -> Setup に移動します。
    6. セットアップ中 -> アセットの選択を次のように設定: 手動
    7. Asset Entries: 選択ボタン。
      • 予期される動作:
        選択ボタンが使用可能で、アクティブであり、クリックするとポップアップ メニューが開きます。

        実際の動作:
        [選択] ボタンがありません。

Environment

  • Liferay DXP 7.1
  • Liferay DXP 7.2
  • Liferay DXP 7.3

解決策

これは既知の問題であり、プロパティ scheduler.enabled を false に設定すると発生します。

com.liferay.portal.workflow.kaleo.forms.web が展開されると、エラーが発生します。 これは、KaleoFormsAdminPortlet を参照して、アセット レンダラー ファクトリがデプロイされるために発生します。

ただし、アセット レンダラー ファクトリは実際 は KaleoFormsAdminPortlet が使用可能 なるのを待ちません (単に使用可能になると想定します)。

KaleoFormsAdminPortlet KaleoFormsAdminPortlet KaleoDefinitionVersionLocalServiceへの参照を要求するため使用できませんが、「dm wtf」と入力すると、スケジューラーを無効にするとその参照が満たされなくなることがわかります。 これは、Spring を介して宣言されているため (オール オア ナッシング)、 KaleoInstanceTokenLocalService TriggerFactory への参照を必要としますが、スケジューラが有効な場合にのみ使用可能であるため、これは決して満たされません。

KaleoProcessAssetRendererFactory コンポーネントをブラックリストに登録するか、 com.liferay.portal.workflow.kaleo.forms.web バンドルをブラックリストに登録することで、回避策を見つけました。 参考までに、次の記事を確認してください: https://help.liferay.com/hc/en-us/articles/360029134991-Blacklisting-OSGi-Bundles-and-Components

バンドルをブラックリストに登録するには com.liferay.portal.workflow.kaleo.forms.web, 以下を実行する必要があります:

- コントロールパネルに移動します --> 設定 --> System Settings --> PLATFORM --> で「Module Container」を選択し、SYSTEM SCOPE で Bundle Blacklist を選択します。
- タイプ com.liferay.portal.workflow.kaleo.forms.web into Blacklist Bundle Symbolic Names テキストエリアボックスに入力して保存します。

- または、Component Blacklist を選択し、 KaleoProcessAssetRendererFactory intoBlacklist Component Names テキスト エリア ボックスに入力して保存します。
- Asset Publisher の手動選択を確認すると、期待どおりに機能し、Web コンテンツを選択できることがわかります。

注: 回避策を適用する前に、テスト環境でテストしてください。

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています