Как правило, вы не можете получить навигационные узлы без версии каталога, потому что они осведомлены о каталоге, это означает, что у вас есть несколько экземпляров одного NavigationNode. В этом случае Hybris не может знать, что именно вам нужно. Тем не менее, ваши обходные пути могут быть обработаны в лучшем виде. Когда вам нужен конкретный пользователь для чего-то в вашем коде, вы можете использовать его следующим образом. Просто чтобы быть уверенным, вы можете добавить блок try - finally в execute () и установить свои параметры в 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()
Где вы можете указать различные параметры. Например, этот отключает некоторые перехватчики.