Я хочу использовать хэш-карту, созданную в одном классе (websocket ServerEndpoint) в другом классе (также ServerEndpoint).Хэш-карта в первом классе является статической.Чтобы иметь доступ к нему во втором классе, я создал геттер в первом классе (который также является статическим).Во втором классе я сделал переменную экземпляра, которая вызывает метод получения первого класса.Проблема, которую я пересекаю, состоит в том, что значения хэш-карты доступны только после повторного развертывания приложения.
// первый класс
@ServerEndpoint(value = "/game/{gameId}")
public class GameEndpoint extends WebsocketEndpoint {
private static HashMap<String, User> users = new HashMap<>();
users.put(session.getId(), user);
public static HashMap<String, User> getUsersMap() {
return users;
}
}
// второй класс
@ServerEndpoint(value = "/invite/{userToken}")
public class InviteWebsocketEndpoint extends WebsocketEndpoint{
@OnMessage
public void onMessage(Session session, String json) throws
IOException, EncodeException {
GameEndpoint ge = new GameEndpoint();
HashMap<String, User> users = new HashMap<>(ge.getUsersMap());
}
}