Идея сделать "общение между пользователями" на сервлетах и JMS, сама по себе, ни о чем не говорит. Сервлеты и JMS - это не способ сделать такое, а просто части JEE, которые (наряду с другими) можно для этого использовать... а можно вообще не использовать JEE, и сделать то же самое на любом другом стеке (Spring, NodeJS, PHP, ASP... да на чем угодно! ), или сделать это на основе других частей JEE. Как лучше и правильнее - зависит только от задачи.
Но если вдруг задача в том, чтоб покопаться именно с JEE, то в двух словах: сервер Tomcat - это одна, конкретная реализация вебконтейнера (сервлеты). Это только часть JEE. JMS - это другая часть, а еще там множество других частей, и все они, разумеется, совместимы и их реализации можно прикрутить друг к другу с большими или меньшими усилиями. К Tomcat конечно же можно прикрутить JMS, или можно взять сервер "побольше", в котором уже собраны все нужные части JEE, например Wildfly (бывший JBoss). В нем будет и то, и другое, и еще много чего, возможно, даже очень нужного для этой задачи: вебсокеты, DI, persistence, возможно и JSF, и аутентификация...
Короче, вариантов, как это можно сделать, море, но прежде, чем в него нырять и искать какие-то конкретные примеры не пойми чего, рекомендую тщательнее порыться в интернете и разобраться,
что есть что в JEE, определиться, что из этого и зачем конкретно нужно для конкретной задачи... и нужно ли вообще - чтоб не получилось из пушки по воробьям.