通过Commandline在Jboss 7.0.1中部署war

时间:2011-12-07 19:16:23

标签: linux java-ee jboss centos5 jboss7.x

我有一个war文件,我需要在Jboss 7.0.1 Server上部署它。现在我已经阅读了文档,但没有找到任何部署war文件的东西。此外,要通过命令行部署构建,通常必须使用maven。那么我们也需要战争吗?如果是这样,它会影响war文件吗?

仅供参考:我正在使用linux(CentOs5)......

2 个答案:

答案 0 :(得分:13)

您可以使用管理命令行界面部署 .war 文件。它的具体文档位于:JBoss AS7 Admin Guide - Deployment,以及下面的相关部分。您可能还希望快速观看视频:5 Ways To Deploy Your Applications To JBoss AS7

CLI部署到托管域

分发部署二进制文件的过程包括两个步骤:您需要将部署上载到域控制器可以从中分发其内容的存储库。在第二步中,您需要将部署分配给一个或多个服务器组:

使用CLI,您可以进行一次扫描:

[domain@localhost:9999 /] deploy ~/Desktop/test-application.war
Either --all-server-groups or --server-groups must be specified.

[domain@localhost:9999 /] deploy ~/Desktop/test-application.war --all-server-groups
'test-application.war' deployed successfully.

[domain@localhost:9999 /] deploy --help
[...]

使用“deploy”命令上传二进制文件后,域控制器可以使用它 并分配给服务器组:

[domain@localhost:9999 /] :read-children-names(child-type=deployment)
{
   "outcome" => "success",
   "result" => [
       "mysql-connector-java-5.1.15.jar",
       "test-application.war"
   ]
}

[domain@localhost:9999 /] /server-group=main-server-group/deployment=test-application.war:read-resource
{
   "outcome" => "success",
   "result" => {
       "enabled" => true,
       "name" => "test-application.war",
       "runtime-name" => "test-application.war"
   }
}

以类似的方式,它可以从服务器组中删除:

[domain@localhost:9999 /] undeploy test-application.war --all-relevant-server-groups
Successfully undeployed test-application.war.

[domain@localhost:9999 /] /server-group=main-server-group:read-children-names(child-type=deployment)
{
   "outcome" => "success",
   "result" => []
}

CLI部署到独立服务器

独立服务器上的部署与托管域类似,只是服务器组关联不存在。您可以依赖与托管域相同的CLI命令来部署应用程序:

[standalone@localhost:9999 /] deploy ~/Desktop/test-application.war
'test-application.war' deployed successfully.

[standalone@localhost:9999 /] undeploy test-application.war
Successfully undeployed test-application.war.

CLI部署到独立服务器(单线程Shell命令)

您也可以一次性从Shell部署WAR。这对Bash脚本或Unix别名很有用。注意:这会公开密码,因此仅将其用于个人开发实例。确保设置了$ JBOSS_HOME,并更改密码和WAR文件路径&根据需要在下面命名:

$ $JBOSS_HOME/bin/jboss-cli.sh -u=admin -p=MY_PASSWORD --controller=localhost:9990 --connect --command="deploy /path/to/MY_APP.war --force"

脚注:如您所知,您已获得用于部署的管理控制台以及部署扫描程序。前者像任何GUI一样受欢迎,但后者更适合开发。我尝试尽可能多地使用CLI,因为学习曲线非常值得批量编写脚本以及CLI API公开的低级操作的绝对规模。很酷的东西。我应该为了透明起见而添加我在AS / EAP文档团队工作,所以我可能会有偏见。

答案 1 :(得分:0)

  

以上答案使我感到困惑。所以,这是简单的解决方案   为我工作。

  • 确保jboss已在运行。命令ps -ef | grep jboss
  • 导航至JBSS_HOME/bin/并打开JBOSS CLI。打开CLI的命令是./jboss-cli.sh
  • 一旦打开CLI。您会看到这样的[disconnected /]。现在,运行命令connect。它会像这样显示[standalone@localhost:9999 /]
  • 现在,使用以下命令进行部署。 "deploy /YOUR_WAR_PATH.war"。 示例:"deploy /tmp/my_app.war"

这就是我们要做的。

学习愉快。