Websockets的CDI

时间:2018-09-16 20:41:12

标签: websocket cdi weld undertow

我是Java 8 Websocket编程的新手,如果我不完全了解,请多多包涵。

这是我对客户端端点的实现

我有一个CDI bean:

 @SessionScoped
 @Named
 public class MyBean implements Serializable{

     @PostConstruct
     private void init(){
          MyClientEndpoint mce = new MyClientEndpoint();
     }

     public loadSomething(){
        //do something.
     }

 }

我的客户端端点如下

@ClientEndpoint
public class MyClientEndpoint {

    @Inject
    private MyBean myBean;

    public MyClientEndpoint() {
        URI uri;
        try {
            uri = new URI("ws://endpoint.example/somepath");

            ContainerProvider.getWebSocketContainer().connectToServer(this, uri);
        } catch (URISyntaxException | DeploymentException | IOException e) {
             System.out.println("an error occured");
    }

   }

   @OnOpen
   public void onOpen(Session session) {
       this.session = session;
   }



    @OnMessage
    public void onMessage(String message) {
        try {
             myBean.loadSomething();

        } catch (Exception ex) {
            System.out.println("error");
            ex.printStackTrace();
    }
}

我能够连接到ServerEndpoing并接收消息,但是,但是在调用CDI Bean时出现NullPointerException。

根据此post,您可以将CDI bean注入ClientEndpoint。所以我不知道这里到底出了什么问题。

PS: 我的服务器是Wildfly14。

0 个答案:

没有答案