В Java EE способ сделать это состоит в том, чтобы реализовать ваш последовательный коммуникационный код в качестве адаптера входящего ресурса JCA, который будет запускать компонент, управляемый сообщениями, который, в свою очередь, вызовет вашу бизнес-логику (я полагаю, вызов EJB), а затем вызоветсобытие push - возможно, через JMS.
Менее согласованным способом будет запуск потока связи непосредственно в вашем веб-приложении, например, в сервлете или в компоненте приложения.Это решение заставит архитекторов Java EE плакать, но будет гораздо более простым и должно одинаково хорошо работать в простых условиях, если вы не ожидаете проблем с параллелизмом (это будет иметь место, если вы будете писать в последовательный порт) или потребуететранзакции (например, сообщение не нужно воспроизводить в случае ошибки оптимистической блокировки на бизнес-уровне).