Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Deploying war in Jboss 7.0.1 through Commandline

I have a war file and I need to deploy it on Jboss 7.0.1 Server. Now I have gone through the documentation, but didnt find any thing to deploy a war file. Moreover for deploying your build through command line you generally have to use maven. So do we need for the war as well? If so, does it affects the war file?

FYI : I am using linux (CentOs5)...

like image 658
Ahmed Avatar asked Dec 07 '11 19:12

Ahmed


People also ask

How do you deploy a WAR in JBoss EAP 7?

From the JBoss bin directory, run the command jboss-cli --connect to start the JBoss CLI and connect to the application server. Run the /deployment command on the compressed WAR file or exploded WAR folder. [If you are deploying to a managed domain, also run the /server-group command.]

How use JBoss command line?

You can launch the management CLI by running the jboss-cli script provided with JBoss EAP. For Windows Server, use the EAP_HOME\bin\jboss-cli. bat script to launch the management CLI.

Can we deploy WAR file in JBoss?

After you configure all properties files in WAR files, you must deploy these WARs through the app server. IMPORTANT: The following configuration is same for all app servers, except the deployment paths for app servers. To deploy configured console .

How does JBoss deploy WAR?

So whenever we place a war file in the deployment folder, it's deployed automatically. JBoss creates the . deployed marker file automatically which indicates that the content has been deployed. However, if we remove the previous deployment before copying a new war file to the deployment folder, JBoss will create an .


1 Answers

You can deploy a .war file using the Management Command Line Interface. The specific documentation for it is located here: JBoss AS7 Admin Guide - Deployment, with the relevant sections per the below. You might also like to have a quick watch of the video: 5 Ways To Deploy Your Applications To JBoss AS7

CLI Deployment To A Managed Domain

The process of distributing deployment binaries involves two steps: You need to upload the deployment to the repository from which the domain controller can distribute it's contents. In a second step you need to assign the deployment to one or more server groups:

Using the CLI you can do it one sweep:

[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
[...]

After you've uploaded the binary using the "deploy" command, it will be available to the domain controller and assigned to a server group:

[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"
   }
}

In a similar way it can be removed from the server group:

[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 Deployment To A Standalone Server

Deployment on a standalone server works similar to the managed domain, just that the server-group associations don't exist. You can rely on the same CLI command as for a managed domain to deploy an application:

[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 Deployment to Standalone Server (one liner Shell command)

You can deploy a WAR in one shot from the Shell as well. This is useful for Bash scripts or Unix aliases. NOTE: This exposes the password, so only use it for personal development instances. Ensure $JBOSS_HOME is set, and change Password and WAR file path & name below as needed:

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

Footnote: As you would know, you've got the Management Console for deployment, as well as the deployment scanner. The former is popular as any GUI would be, but the latter is more for development. I try to use the CLI as much as possible, as the learning curve is well worth the effort for the power of batch scripting and the sheer scale of low level operations that are exposed by the CLI API. Very cool stuff. I should add for sake of transparency that I work on the AS/EAP documentation team, so I might be biased.

like image 76
ddri Avatar answered Nov 06 '22 21:11

ddri