2011-08-22 91 views
0

我们有一个带有Flex和Java的Web框架,其基本功能是在后台执行命令(Unix)并解析并将其发送回客户端(Flex)。这适用于所有无声命令。有没有我们可以通过Web执行交互命令的方法?

我们正在使用运行时进程来根据flex端的请求在java端执行命令。我们也需要为交互式命令/脚本做同样的事情。

是否可以通过网络执行交互式命令/脚本。我也尝试过使用Apache Commons,但无法找到解决方案。

任何帮助将不胜感激。

回答

0

CLI与交互式命令的区别在于,您必须从进程'STDIN中读取数据并写入其STDOUT。我不知道Flex,但你一定可以用普通的HttpRequest来实现,尽管它不是微不足道的。

使用HTTP POST运行命令。但是在运行之前创建HTTP GET请求。 GET和POST都应该有某种相关ID。您可以使用参数发送它。 GET请求将由servlet doGet()处理,只有当您运行的命令终止时才会终止。 POST请求应该由doPost()和run命令来处理。使用PipedOutputStream连接命令的STDOUT和servlet的HTTP输出流,因此应用程序打印的所有字节将通过HTTP连接传递,并可以在UI上显示。

当用户键入下一个子命令时,发送带有相同相互关系ID的帖子,这样你就可以在服务器端找到“正确”的进程并将传入的字节写入其STDIN。

顺便说一句,你真的需要这一切吗?你可能有更简单的解决方案?无论如何,祝你好运。

相关问题