javajbosswarplayframework-2.1

How to get two WAR files to run separetly on JBOSS 7


Ive been searching but unable to find an solution to the problem I have.

Description: I have two WAR files stage.war and master.war that are essentially the same application but with different names. The war files are generated through the plugin https://github.com/dlecan/play2-war-plugin that I use to be able to develop using the play framework.

My goal is to have both of the WAR files deployed on JBOSS 7. But when I try to do this only one of the WAR files gets deployed while the other one fails.

Im using standalone.sh to start the server and then I use the /deployments folder in JBOSS to deploy the WAR files. So I basically drop the WAR files into the /deployments folder and only one succeeds to deploy.

Here is the server log of the failed deployment (stage.war.failed)

{"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"stage.war\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"stage.war\".INSTALL: Failed to process phase INSTALL of deployment \"stage.war\""}}}}

Any help would be appreciated


Solution

  • Follow the steps

    1. Make 2 copies of your standalone folder. Give them distinct names - like stage1 and stage2.

    2. Place the war files under the deployment directory.

    3. Make the appropriate changes in the standalone.xml so that the ports do not conflict. This can be easily achieved by specifying a port-offset in one of the standalone.xml under

      socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:100}">

      So one of the ports will be 8080 while the other is 8180

    4. Next make separate start up scripts for the two standalone instances or run the standalone.sh specifying the arguments. I use a .bat file and start it using cmd prompt

       standalone.bat -Djboss.server.base.dir=../stage1 -  Dorg.jboss.boot.log.file=c:\tools\jboss\jboss-as-7.1.1.Final\stage1\log\boot.log -Dlogging.configuration=c:\tools\jboss\jboss-as-7.1.1.Final\stage1\configuration\logging.properties
      

    and similiarly for stage2

    Hope this helps.