2013-04-16 1 views
0

Не вызван ли диалог.dll при вызове chat.end?JavaEE6 Conversation.end не сбрасывает chat.id на 1

Сценарий: У меня есть приложение, которое использует область разговора в CRUD, поэтому, когда я перехожу на страницу списка, начинается разговор. Перейдите к деталям и нажмите «Назад», чтобы завершить разговор и начать разговор снова. Но пока я нахожусь в режиме отладки, я узнал, что когда call.end() называется разговор, устанавливается значение null. Затем, когда я повторно вызываю chat.begin(), chat.id не сбрасывается в 1, а скорее последнее значение + 1. Правильно ли это вести себя так?

Что более загадочным после выхода из системы и снова войти в систему, то conversation.id забрать последнее значение + 1.

Моя среда: JBoss 7.1.3 с помощью JavaEE-API.

protected void beginConversation() { 
    if (conversation.isTransient()) { 
     conversation.begin(); 
    } 
} 

protected void endConversation() { 
    if (!conversation.isTransient()) { 
     conversation.end(); 
    } 
} 

Так в основном у меня есть базовый объект (где определен выше код.) Распространяется на все отступающую фасоли. Когда страница списка отображается, она вызывает beginConversation. Нажатие на кнопку «Назад» на подробной странице вызовет endConversation.

+0

Можете ли вы показать нам код? –

+0

Привет @PetrMensik, я добавил код выше. – czetsuya

ответ

1

Зачем нужен идентификатор беседы?

Лучший способ решить эти вопросы - это напрямую посмотреть в specification (в вашем случае CDI 1.0), в котором говорится, что контейнер должен генерировать идентификатор для разговора, но не как.

Задать вопрос this, в котором говорится, как это делается в WELD.

+0

Спасибо, я подумал, что сработает, когда я начну разговор. Он работает правильно Мне просто интересно, почему id увеличивается даже при новом разговоре. Наверное, так оно и есть. – czetsuya

Смежные вопросы