У меня возникли некоторые проблемы с пониманием области диалога Weld или CDI.
На моей странице JSF Faclets я звоню:
<f:metadata>
<f:event type="preRenderView" listener="#{viewBean.start}" />
</f:metadata>
Боб:
import javax.enterprise.context.Conversation;
import javax.enterprise.context.ConversationScoped;
@Named
@ConversationScoped
public class ViewBean implements Serializable {
@Inject
private Conversation conversation;
public void start() {
if (conversation.isTransient()) {
System.out.println("START CONVERSATION");
conversation.begin();
}
}
Теперь каждый раз, когда я обновляю свой браузер, запускается новый разговор. Это правильное поведение? Так почему же разговор всегда преходящ? Никаких исключений не выбрасывается. Beans.xml создан и пуст:
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>