Ну, поскольку Tomcat - это не контейнер Java EE, а просто контейнер сервлетов, вы можете без проблем открывать новые потоки (кроме типичных проблем многопоточности, с которыми вам следует иметь дело;).
JMS - это решение для разделения модулей полноценного промежуточного программного обеспечения (совершенно нового времени выполнения), которое заботится о сообщениях. Этот подход может быть слишком сложным для вас, если вы просто хотите отделить один процесс по соображениям эффективности.
Если вы используете Spring 3.0, я бы предложил вам использовать асинхронные вызовы . Вы просто аннотируете метод bean-компонента с помощью @Async, и все готово:).