CDI с веб-сокетами - PullRequest
       26

CDI с веб-сокетами

0 голосов
/ 16 сентября 2018

Я новичок в программировании веб-сокетов на Java 8, так что терпите меня, если у меня нет полного понимания.

Итак, вот моя реализация моих конечных точек клиента

Iу меня есть bean-компонент CDI:

 @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 и получить сообщение очень хорошо, однако яЯ получаю исключение NullPointerException при вызове компонента CDI.

В соответствии с этой публикацией вы можете внедрить компонент CDI в ClientEndpoint.Так что я не знаю, что именно здесь происходит не так.

PS: Мой сервер - Wildfly 14.

...