Технически, вам разрешено сохранять состояние в сессионном компоненте без состояния, просто состояние может очищаться контейнером между вызовами. В результате вы не должны хранить сам кеш в компоненте, поскольку он может просто исчезнуть.
Поскольку вы уже используете JBoss Appserver, JBossCache может показаться здесь очевидным победителем. Вы можете сконфигурировать экземпляры JBossCache, используя дескрипторы сервиса jboss, и ваш EJB может затем искать экземпляр кэша из JMX / JNDI. Все это уже включено в JBossAS, поэтому никаких дополнительных зависимостей не требуется.
Использование JBossCache также дает вам дополнительный бонус кеша, распределенного по кластеру, если это что-то вас интересует.