0

我有一个使用套接字监听一个 IP 的简单 java 函数:

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 中安装它,并执行一次 main 函数,才能启动该过程。

我如何在 WAS 7.0 中做到这一点?

问候,
佩德罗

4

1 回答 1

1

根据 Java EE 建议,您应该避免在容器中打开套接字。如果你想无论如何,你需要一种方法来开始这个,你有几个选择。

使用可以远程调用的方法(RMI...)创建一个 EJB 会话 Bean,并将内容放入该方法中。

如果您想使用 WAS 自动启动,您可以使用 EJB Timer 来安排任务的执行。

您还可以创建一个在调用时执行此操作的 Servlet。

您应该考虑启动一个线程来管理套接字,但是当条件达到while (userInput == 1).

在像 WAS 这样的应用程序服务器中这样做听起来很奇怪,但您可以这样做。

我们在 SAP XI 中通过创建一个会话 EJB 来执行一些类似的任务,该会话 EJB 启动多个线程来管理客户端套接字。

于 2011-03-14T19:53:10.417 回答