无论如何,我们可以通过Web执行交互式命令吗?

时间:2011-08-22 11:44:10

标签: java flex apache unix

我们有一个带有Flex和Java的Web框架,其基本功能是在后台执行命令(Unix)并解析并将其发送回客户端(Flex)。这适用于所有静默命令。

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

是否可以通过Web执行交互式命令/脚本。我也尝试过apache commons,但无法找到解决方案。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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。

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