Ну, во-первых, использование Java EE с TCP - не лучший подход, который вы можете использовать.Если вам просто нужна простая служба TCP с веб-интерфейсом, вам лучше рассмотреть возможность использования Java SE с подключенным веб-контейнером (недоделка работает хорошо).
С другой стороны, если вам нужно, чтобы ваше приложение интегрировалось в существующую JavaEE инфраструктура вашей компании, JCA будет лучшим подходом.Хотя она не предназначена для такого рода вещей, JCA является единственной подсистемой EE, достаточно либеральной для такого управления потоками, которое необходимо для работы сетей TCP.
JCA-сокет, на который вы ссылаетесь выше, не являетсялучший пример приложения JCA.Он использует обычные блокирующие сокеты Java, блокируя поток WorkManager, это не очень эффективно.Теперь все стало намного лучше, и у нас есть Java NIO и Netty для высокоэффективной работы в сети.У меня есть JCA-разъем для TCP-взаимодействий , который может предоставить вам скелет для создания вашего собственного.Не стесняйтесь расширять и вносить свой вклад.
PS О MDB: управляемый сообщениями компонент - это единственный «законный» подход JCA для асинхронной обработки входящих сообщений.Так как TCP асинхронный, вам определенно понадобится один в вашем приложении, чтобы все вещи начали работать.Исходящие передачи данных происходят через различные интерфейсы ConnectionFactory, которые вы внедрите в ваш bean-компонент.Приведенная выше ссылка предоставит вам справочную реализацию ConnectionFactory, а также простое приложение-тестер, использующее подходы обмена сообщениями как для ConnectionFactory, так и для MDB.