小编nog*_*awa的帖子

CDI ConversationScoped长期运行的Bean无法运行

我在理解Weld或CDI的会话范围时遇到了一些问题.

在我的JSF Faclets页面中,我调用:

        <f:metadata>
            <f:event type="preRenderView" listener="#{viewBean.start}" />
        </f:metadata>
Run Code Online (Sandbox Code Playgroud)

豆子:

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();

    }
}
Run Code Online (Sandbox Code Playgroud)

现在每次刷新浏览器时,都会启动一个新的对话.这是正确的行为吗?那么为什么谈话总是短暂的?没有异常被抛出.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>
Run Code Online (Sandbox Code Playgroud)

jsf cdi java-ee-6 jboss-weld

2
推荐指数
1
解决办法
5212
查看次数

@Observes在sessionscoped bean中?

以下情况可能吗?

"SessionService"是一个无状态EJB,它触发一个事件"LoggedInEvent".调用具有观察LoggedInEvent的非静态方法的SessionScoped(Weld)bean"SessionBean",并为该特定用户初始化一些内容.

是否调用了"SessionBean"的正确实例?所有实例都被调用了?我在文档中找不到任何内容.

events cdi java-ee-6 observer-pattern

2
推荐指数
1
解决办法
1432
查看次数

标签 统计

cdi ×2

java-ee-6 ×2

events ×1

jboss-weld ×1

jsf ×1

observer-pattern ×1