【问题标题】:Is it possible to call an EAR with a script ?(an deployed EAR on jboss 7)是否可以使用脚本调用 EAR?(在 jboss 7 上部署的 EAR)
【发布时间】:2013-05-21 10:05:14
【问题描述】:

我想编写一个能够调用部署在 jboss 7 上的 EAR 的 SVN 预提交挂钩脚本。 我的意思是,当脚本执行时,它将打开 Web 导航器并通过 (localhost:8080/NameOfTheEar) 调用 EAR。 在我的项目中这样做非常重要,因此我们将不胜感激。

编辑:谢谢回答。一些细节: EAR 包含我的应用程序(当然是在 war 模块中),因此执行预提交挂钩的操作与打开 Web 浏览器、写入“localhost:8080/NameOfTheEar”并单击 Enter 相同。那可能吗? 简而言之,当脚本执行时 => 应用程序(在 EAR 中)会在 Web 浏览器中弹出

【问题讨论】:

  • 调用 EAR 并没有多大意义。您应该如何调用远程应用程序? EAR 是否包含托管 Web 服务的 WAR?如果是这样,您需要在 preCommit 挂钩中使用一种语言,该语言支持使用 HTTP 请求调用远程服务。您是否真的希望使用 RMI 调用远程对象?然后,这将决定您用来编写 preCommit 挂钩的内容。除非您提供一些关于您需要如何调用您的应用程序的细节,否则我们无法提供太多。
  • 您想启动浏览器 调用 EAR。

标签: java svn jakarta-ee


【解决方案1】:

由于 preCommit 挂钩的功能受限于您编写挂钩所使用的语言,因此您几乎可以在 preCommit 挂钩中执行任何操作。大多数语言都允许系统调用打开网页。我不会想象它会阻止提交发生。因此,这可能没有什么理由成为 preCommit 钩子。

但是,preCommit 挂钩在托管 Subversion 存储库的机器上运行。仅当提交更改的工作副本位于托管存储库的同一物理框上时,具有此类功能的挂钩才会起作用。如果您有远程客户端通过 svnserve 或 http 将其更改发送到存储库,那么尝试通过 preCommit 挂钩显示浏览器不会对提交更改的客户端计算机产生任何影响。

我不知道有什么方法可以将这些类型的操作作为 subversion 代码本身的一部分传回给客户端。听起来你想要的是一个客户端钩子。 TortoiseSVN 有一个define client-side hooks 的方法,但这是特定于 TortoiseSVN 的,不是基于存储库的 preCommit。 Linux/Unix 环境中的别名也是一种客户端方法。

【讨论】:

    【解决方案2】:

    编写一个访问网页的预提交挂钩非常容易(这似乎是您所要求的大部分内容)。正如@EdH 所说,您几乎可以选择访问网页的语言和方法。

    例如,您可以编写一个使用 curl 或 wget 来访问页面的 shell 脚本。 根据按钮的作用,单击按钮可能会有点棘手。

    如果您可以通过将正确的参数传递给页面来模拟按钮按下(必要时可能使用 POST 而不是 GET),那么它可能相当容易。

    如果您确实需要点击按钮,您可以使用Selenium 或其他一些自动化 UI 测试工具来按下按钮。

    如果您喜欢 Groovy,请查看 Geb

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-04
      • 2016-01-25
      • 2019-01-29
      • 1970-01-01
      • 2012-11-15
      • 2012-02-27
      • 1970-01-01
      • 2012-05-28
      相关资源
      最近更新 更多