【问题标题】:Run commands from web application从 Web 应用程序运行命令
【发布时间】:2011-12-06 06:58:46
【问题描述】:

我目前正在尝试从 Web 应用程序的命令行运行命令。是否可以从 Web 应用程序中执行?

命令(在终端上):

cd ejbca/bin
./ejbca.sh batch

当按下按钮时如何在 Web 应用程序中运行这些?

【问题讨论】:

    标签: web-applications command-line terminal batch-processing certificate-authority


    【解决方案1】:

    如果我是你,我会在 Web 应用程序之外创建一个监听器。当你的按钮被按下时,只需向监听器发送一条消息,监听器就会照常进行。

    对于消息传递,您可能需要使用zeromq

    【讨论】:

      【解决方案2】:

      Java 代码

      Process proc = Runtime.getRuntime().exec("myshell.sh");
      

      myshell.sh

      #!/bin/bash
      cd ejbca/bin
      ./ejbca.sh batch &
      

      在你的 example.jsp 中

      <form method="get">
      <input type="submit" name="example" value="Push Me" alt="example button">
      <% 
          if ("Push Me".equals(request.getParameter("example"))) {
              Process proc = Runtime.getRuntime().exec("myshell.sh");
          }
      %>
      </form>
      

      【讨论】:

      • 注意这是一个相当粗略的例子。您可以在单独的线程中捕获 stdout 和 stderr 并删除与号。
      • myshell.sh 应该在哪里创建?
      • 我正在尝试在 jsp 页面上执行此操作。这是我尝试过的:     是这样吗?
      • 脚本 ejbca.sh 应该在运行 servlet 容器的用户的 $PATH 上。这在您的应用程序之外更容易完成,例如,在该用户的 ~/bin 文件夹中。如果您尝试在您的应用程序中部署 ejbca.sh,您可能需要在部署后对其进行 chmod 一些可执行权限。
      • 我不明白。我在 /home/user/ejbca 中有这个 Web 应用程序 ejbca。我要运行的文件位于 /home/user/ejbca/bin/ejbca.sh ejbca Web 应用程序正在 jboss 服务器上运行。执行“ehbca.sh batch”将创建一个新文件夹“/home/user/ejbca/p12/pem”,并在该文件夹中创建一些证书。 Web 应用程序上的页面将有一个按钮,该按钮将运行文件并创建文件夹和文件。如何在 Web 应用程序页面上按一个按钮来执行文件?
      猜你喜欢
      相关资源
      最近更新 更多
      热门标签