Ваш код выглядит нормально, поэтому, возможно, кэш Jboss асинхронный. Я не вижу в Javadocs ничего, что гарантировало бы, когда кэш будет обновлен.
Я знаю, что во многих реализациях распределенного кэша операция put
записывается на провод, и даже локальный экземпляр кэша обновляется из входящего сообщения, а не напрямую через локальный вызов. Это позволяет кэшам соответствующим образом сериализовать свои обновления, чтобы обновления с нескольких компьютеров обрабатывались в правильном порядке на всех узлах в сети.
Следует попробовать установить кэш-память на МЕСТНЫЙ. Примерно так:
Configuration config = new Configuration();
config.setCacheMode(LOCAL);
Cache cache = new DefaultCacheFactory().createCache(config, false);
...
Если это не так, то я подозреваю, что я прав. Даже если он все равно не работает, я могу быть прав, поскольку в режимах LOCAL
все еще может быть петлевой сетевой стек или что-то в этом роде.
Надеюсь, это поможет.