Как использовать хэш-карту, созданную в одной ServerEndpoint в другой ServerEndpoint

Я хочу использовать хэш-карту, созданную в одном классе (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());
}
}

0 ответов

Другие вопросы по тегам