Я использую компонент CDI с разницей в разговоре. я начинаю новый разговор в способе действия моего боба, как это:@ConversationScoped Beans - идентификатор конверсии не уникален?
if (conversation.isTransient()) {
conversation.begin();
logger.fine("start new conversation, id=" + conversation.getId());
}
Теперь я узнал, что идентификаторы, предоставленные КДИ простые маленькие номера, как «1» или «2» и так далее. Я смог после некоторого тестирования начать различные сеансы браузера, которые получили в конце один и тот же идентификатор. Поэтому оба браузера утверждают, что идентификатор «1», например. И это приводит к конфликту во время разговора.
Интересно, нормально ли это поведение (я работаю в Wildfly)?
Должен ли я начать свой разговор, дав себе уникальный идентификатор?
if (conversation.isTransient()) {
conversation.begin(UUID.randomUUID().toString());
logger.fine("start new conversation, id=" + conversation.getId());
}
Обновление: Как Siliarus комментарий, идентификатор уникален в сеансе браузера. Мое собственное наблюдение за конфликтом в двух разных сеансах браузера с использованием того же CID было неправильным. Нет необходимости создавать уникальный идентификатор самостоятельно.
Просьба уточнить, «И это приводит к конфликту во время разговора». Создание другого сеанса браузера вызовет новый сеанс внутри CDI. Таким образом, вы можете иметь одинаковые идентификаторы сеанса, но каждый из них относится к другому сеансу (при условии, что вы сохраняете оба сеанса активными). Думаю, это не должно вызывать конфликтов. Это всего лишь первая мысль, которая приходит ко мне. – Siliarus
Да, вы правы. Я понял, что идентификатор уникален в сеансе, и я был виноват в том, что это будет проблемой. – Ralph