是否可以使用脚本调用EAR?(在jboss 7上部署的EAR)

时间:2013-05-21 10:05:14

标签: java svn java-ee

我想编写一个SVN预提交钩子脚本,它可以调用部署在jboss 7上的EAR。 我的意思是当脚本执行时,它将打开Web导航器并通过(localhost:8080 / NameOfTheEar)调用EAR。 在我的项目中这样做是非常重要的,所以任何帮助都会受到赞赏。

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

2 个答案:

答案 0 :(得分:0)

因为preCommit钩子可以做的限制是基于你编写钩子的语言,你可以在preCommit钩子中做任何事情。大多数语言都允许系统调用来打开网页。我不认为它会阻止提交发生。因此,这可能没有什么理由成为preCommit钩子。

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

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

答案 1 :(得分:0)

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

例如,您可以编写一个使用curl或wget命中页面的shell脚本。 单击该按钮可能会有点诡计,具体取决于按钮的作用。

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

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

如果您使用的是Groovy,请查看Geb