Приложение Socket Java, установленное в WAS 7.0 - PullRequest
0 голосов
/ 14 марта 2011

У меня есть эта простая Java-функция, которая прослушивает один IP-адрес с использованием сокетов:

void main()

(...)


Socket client = new Socket("192.168.9.2",63333);

DataOutputStream out=new DataOutputStream(client.getOutputStream());
DataInputStream in=new DataInputStream(client.getInputStream()); 

while (userInput == 1) {
      System.out.println(in.readLine());
}

(...)

И она работает нормально, но проблема в том, что мне нужно установить ее в WAS 7.0 и выполнитьОсновная функция один раз, чтобы запустить процесс.

Как я могу это сделать в WAS 7.0 ??

С уважением,
Педро

1 Ответ

1 голос
/ 14 марта 2011

В соответствии с рекомендациями Java EE следует избегать открытия сокетов в контейнере.Если вы все равно хотите, вам нужен способ начать это, у вас есть несколько вариантов.

Создайте EJB Session Bean с методом, который вы можете вызывать удаленно (RMI ...), и поместите материал в этот метод.

Если вы хотите запускать автоматически с WAS, вы можете использовать EJB Timer для планирования выполнения задачи.

Вы также можете создать сервлет, который при вызове выполняет эту работу.

Вы должны рассмотреть возможность запуска потока для управления сокетом, но поток должен быть в состоянии останавливаться сам по себе, когда условие достигает типа while (userInput == 1).

Этот звук странно делать вСервер приложений, такой как WAS, но вы можете сделать это.

Мы выполняем некоторые аналогичные задачи в SAP XI, создавая Session EJB, запускающий несколько потоков для управления клиентскими сокетами.

...