В Wildfly/JBoss, если у вас есть статическая переменная, определенная в файле .jar внутри модуля, вы получите общий экземпляр этой переменной для всех .wars, которые используют этот jar из этого модуля. Однако если вы используете статическую переменную из .jar, находящегося в каждом .war, то каждое приложение (.war) получает свой собственный экземпляр этой переменной.
Это обсуждается в этом вопросе, и я также проверил это с помощью RedHat и фактически использовал это другое поведение в своих интересах, хотя я не получил объяснения, как и почему это работает.
Каков фактический механизм, который делает это возможным? Когда вы гуглите, как работает статическая переменная Java, вы найдете обсуждение того, как существует один экземпляр (и это подразумевает во всей JVM), но очевидно, что это не так, потому что я могу получить разное поведение в одной и той же JVM, но в разных .war-приложениях в JVM. Так что же на самом деле здесь происходит, чтобы объяснить разницу в поведении?
Подробнее здесь: https://stackoverflow.com/questions/766 ... dfly-jboss