Синглтон EJB в качестве TCP-сервера

У меня есть EJB и веб-служба, использующая его. Теперь я хотел бы написать простой TCP-сервер в качестве альтернативы веб-сервису, но я не хочу переписывать логику в EJB и уровне базы данных под ним.

Поэтому я написал простой TCP-сервер как синглтон и аннотировал его @Startup. Приложение работает, но оно также, кажется, убивает административную консоль JBoss, а также создает множество исключений тайм-аута. Я подозреваю, что причиной является бесконечный цикл while, который у меня есть в серверном компоненте, который требуется для приема входящих соединений. Есть ли способ обойти это или просто плохая идея использовать EJB в качестве сервера?

Я предполагаю, что альтернативой является написание автономного java-приложения и использование удаленного интерфейса в моей бизнес-логике EJB, хотя это кажется немного хлопотным....


person zoma    schedule 17.02.2011    source источник


Ответы (1)


Я думаю, у вас есть 2 решения.

  1. Вы можете написать автономный демон, который представляет собой простой TCP-сервер. Он должен прослушивать порт и вызывать ваш уровень EJB, работающий в JBoss, когда это необходимо.

  2. в качестве альтернативы вы можете реализовать свой сервер с помощью коннектора JCA. Теоретически это "правильное" решение. И это не так сложно, если вы используете его только для входящих соединений.

person AlexR    schedule 17.02.2011