JSF应用程序中的交互式终端仿真

时间:2012-09-11 12:25:05

标签: java ssh applet jnlp terminal-emulator

我们正在开发(基本上是数据挖掘)由JSF(Primefaces)/ Spring / Hibernate支持的Web应用程序。对于下一步,我们必须创建某种终端仿真,以便Web应用程序可以将用户SSH连接到请求的主机。

这个问题的目的是找到符合我们要求的正确技术。目前我正在使用java applets和jnlp进行概念验证,但是不能深入了解它们以提前看到它们的限制/可能性。

用例:(从项目规范中简化):

我们假设我们在java applet中进行仿真。 想象一下带有p:selectOne菜单( hostMenu ),p:dataTable( scriptTable )和我们的applet的简单网页。 HostMenu项目由包含服务器URL,登录名和密码的对象支持。选择更改触发器事件,将数据复制到applet并建立SSH连接。

现在在scriptTable中,将有一个由用户定义的简单的预定义脚本。将脚本视为非常简单的东西(例如Linux机器上的 ls -l <​​/ em>)。表上的Doubleclick事件将在applet的ssh会话中执行脚本。

其他一些要求和合同限制

  • ssh连接必须在客户端计算机上完成(不在服务器上)
  • 仿真必须是完全交互式的(尤其是在linux上 机器,TAB键自动完成)
  • 在网页上
  • ,AJAX请求不会重置applet(它会保留 在请求之前连接到机器)

任何回应都是有意义的。 applets / jnlp等其他技术也是如此。例如,如果你知道JSF与外部模拟器(Putty,linux控制台)交互的可能性很大,我们可以使用它们。

2 个答案:

答案 0 :(得分:0)

对于前端,请查看Primefaces终端组件:

http://www.primefaces.org/showcase-labs/ui/terminalHome.jsf

答案 1 :(得分:0)

好吧,我想我们终于找到了使用JCraft的JCterm。它需要对代码进行一些更改,但它似乎运行良好(到目前为止;))