亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Hybris 中不設置硬編碼目錄版本的情況下獲取導航節點?

如何在 Hybris 中不設置硬編碼目錄版本的情況下獲取導航節點?

米琪卡哇伊 2021-08-25 18:16:58
我從一個自定義類別服務中調用一個方法AfterSaveListener,在這個方法中我需要返回的根導航節點,cmsNavigationService但是每當我調用這個方法時,它都會拋出一個錯誤:de.hybris.platform.cms2.exceptions.CMSItemNotFoundException:沒有帶有 id 的 NavigationNode。當我通過設置硬編碼內容目錄時getCatalogVersionService().setSessionCatalogVersion(".....")我處理這個問題,但對我來說似乎不是真的。我可以通過使用來處理類別的相同問題userService.setCurrentUser(userService.getAdminUser());為了消除靈活搜索的所有限制,但此解決方案不適用于導航節點。我怎么解決這個問題?
查看完整描述

2 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

CMSNavigationService 提供了兩種獲取根導航節點的方法:

一種是不接受任何參數,另一種是接受目錄版本作為參數。當您傳遞目錄版本時,該服務將搜索此特定目錄版本中的導航節點。

當您不指定時,它將在會話目錄版本中搜索。hybris 不會在會話中為 cronjobs 設置目錄版本。所以你不應該找到導航節點。當您手動將目錄版本設置到會話中時(使用您問題中的代碼段),它將再次起作用。

我希望我正確理解了這個問題。


查看完整回答
反對 回復 2021-08-25
?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

一般來說,如果沒有目錄版本,您將無法獲得導航節點,因為它們可以識別目錄,這意味著您有一個 NavigationNode 的多個實例。在這種情況下,Hybris 無法知道您到底需要哪個。但是,您可以以更好的方式處理您的變通方法。當您的代碼中的某些內容需要特定用戶時,您可以像這樣使用它??梢钥隙ǖ氖?,您可以在 execute() 中添加一個 try - finally 塊,并在 try 中設置您的參數并在 finally 中刪除它們。


private Object myMethod()

{

    return getSessionService().executeInLocalView(new SessionExecutionBody()

    {

        @Override

        public Object execute()

        {

            // Your code for an isolated session. Set session params here, remove restrictions and so on.

            //searchRestrictionService.disableSearchRestrictions(); for example

            return new Object();


        }

    }, userService.getAdminUser()); // You can also specify as which user you want to execute the code

}

另一個有趣的事情是這個。


final Map<String, Object> params = ImmutableMap.of(InterceptorExecutionPolicy.DISABLED_INTERCEPTOR_TYPES,

                ImmutableSet.of(InterceptorExecutionPolicy.InterceptorType.VALIDATE));

        sessionService.executeInLocalViewWithParams(params, new SessionExecutionBody()

您可以在哪里指定不同的參數。例如,這個禁用了一些攔截器。


查看完整回答
反對 回復 2021-08-25
  • 2 回答
  • 0 關注
  • 218 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號