Контейнеры J2EE допускают прямые сокеты сервера? - PullRequest
0 голосов
/ 31 октября 2010

У меня есть вопрос, который может звучать странно.
Мне интересно знать, позволяют ли контейнеры J2EE развернутым приложениям открывать прямые сокеты сервера (минуя, по сути, контейнер) для своих собственных целей.
Я знаю, что странно хотеть сделать это, но причина, по которой я спрашиваю, заключается в том, что я прочитал, что javax.xml.endoint не может быть запущен в контейнере, и мне было интересно, если это причина.

ОБНОВЛЕНИЕ : Ответы на этот пост, мне кажутся противоречивыми. Один ответ (от andri) относится к спецификации EJB, которая запрещена, а другой ответ от Codemwnci (подкрепленный комментарием от Hippo) говорит, что это что-то используемое в производстве. Я не уверен, что сделать вывод из этого сообщения. Кто-нибудь может помочь в очистке этого?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 31 октября 2010

Строго говоря, это запрещено спецификацией EJB , так же как запрещено управление собственными потоками:

Корпоративный компонент не должен пытаться прослушивать сокет,принимать соединения через сокет или использовать сокет для многоадресной рассылки.

Вероятная причина запрета - распределенные приложения и перемещение EJB-компонентов между экземплярами сервера приложений.«Официальным» решением для открытия необработанного сокета является написание коннектора JCA.

2 голосов
/ 31 октября 2010

У меня есть веб-приложение, которое работает на сервере приложений WebSphere (WAS 7).В одном из приложений, как часть сервлета, который запускается при запуске приложения, я создаю ServerSocket.

Он работает в крупномасштабной производственной среде и работает в течение многих лет.

...