gpt4 book ai didi

java - @ServerEndpoint 可以是 EJB 但不能是普通的 CDI bean?

转载 作者:行者123 更新时间:2023-12-01 13:42:39 26 4
gpt4 key购买 nike

我刚刚遇到以下问题,但无法找到答案:

@ServerEndpoint("/websocket/server")
public class ServerUpdateEndpoint implements Serializable {
...@OnOpen, OnMessage OnClose annoted methods, works fine...

@PostConstruct
public void start() {
logger.log(Level.INFO, "ServerUpdateEndpoint start");
}

@PreDestroy
public void stop() {
logger.log(Level.INFO, "ServerUpdateEndpoint stop");
}

}

当我使用@Named生命周期回调@PostConstruct注释此类时,@PreDestroy永远不会被执行。

当我用 @Singleton 注释它时,它工作得很好。

谁能解释一下,这里的普通 CDI 注释有什么问题吗?

最佳答案

它肯定只能有 CDI 注释。您需要对其进行注释 @ApplicationScoped 并确保客户端连接到端点。添加 @Named 时是否给了它一个范围?

关于java - @ServerEndpoint 可以是 EJB 但不能是普通的 CDI bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20588178/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com