5.3.2. WAR deployment to Jetty
Below is an example of deployment of the WAR files to the Jetty web server. It is assumed that the application uses a PostgreSQL database.
-  Use Deployment > WAR settings page in Studio or just manually add the buildWar task to the end of build.gradle: task buildWar(type: CubaWarBuilding) { appHome = '${app.home}' appProperties = ['cuba.automaticDatabaseUpdate': 'true'] singleWar = false }Please note that we are building two separate WAR files for Middleware and Web Client blocks here. 
-  Start build process by running buildWarfrom the command line (provided that you have created the Gradle wrapper beforehand):gradlew buildWarAs a result, the app-core.warandapp.warfiles will be created in thebuild\distributions\warproject subdirectory.
-  Create an application home directory, for example, c:\work\app_home.
-  Download and install Jetty to a local directory, for example, c:\work\jetty-home. This example has been tested onjetty-distribution-9.3.6.v20151106.zip.
-  Create the c:\work\jetty-basedirectory, open the command prompt in it and execute:java -jar c:\work\jetty-home\start.jar --add-to-start=http,jndi,deploy,plus,ext,resources
-  Create the c:\work\jetty-base\app-jetty.xmlfile with the following contents (for a PostgreSQL database namedtest):<?xml version="1.0"?> <!DOCTYPE Configure PUBLIC "-" "http://www.eclipse.org/jetty/configure_9_0.dtd"> <Configure id="Server" class="org.eclipse.jetty.server.Server"> <New id="CubaDS" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg></Arg> <Arg>jdbc/CubaDS</Arg> <Arg> <New class="org.postgresql.ds.PGSimpleDataSource"> <Set name="ServerName">localhost</Set> <Set name="PortNumber">5432</Set> <Set name="DatabaseName">test</Set> <Set name="User">cuba</Set> <Set name="Password">cuba</Set> </New> </Arg> </New> </Configure>The app-jetty.xmlfile for MS SQL databases should correspond to the following template:<?xml version="1.0"?> <!DOCTYPE Configure PUBLIC "-" "http://www.eclipse.org/jetty/configure_9_0.dtd"> <Configure id='wac' class="org.eclipse.jetty.webapp.WebAppContext"> <New id="CubaDS" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg/> <Arg>jdbc/CubaDS</Arg> <Arg> <New class="org.apache.commons.dbcp2.BasicDataSource"> <Set name="driverClassName">com.microsoft.sqlserver.jdbc.SQLServerDriver</Set> <Set name="url">jdbc:sqlserver://server_name;databaseName=db_name</Set> <Set name="username">username</Set> <Set name="password">password</Set> <Set name="maxIdle">2</Set> <Set name="maxTotal">20</Set> <Set name="maxWaitMillis">5000</Set> </New> </Arg> </New> </Configure>
-  Optionally (for example, for MS SQL database) you may be required to download the following JARs and add them to the c:\work\jetty-base\lib\extfolder:commons-pool2-2.4.2.jar commons-dbcp2-2.1.1.jar commons-logging-1.2.jar
-  Add the following text to the beginning of c:\work\jetty-base\start.inifile:--exec -Xdebug -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n -Dapp.home=c:\work\app_home -Dlogback.configurationFile=c:\work\app_home\logback.xml # --------------------------------------- app-jetty.xml
-  Copy the JDBC driver for your database to the c:\work\jetty-base\lib\extdirectory. You can take the driver file from the CUBA Studiolibdirectory or from thebuild\tomcat\libproject directory. In case of PostgreSQL database, it ispostgresql-9.1-901.jdbc4.jar.
-  Copy WAR files to the c:\work\jetty-base\webappsdirectory.
-  Open the command prompt in the c:\work\jetty-basedirectory and run:java -jar c:\work\jetty-home\start.jar
-  Open http://localhost:8080/appin your web browser.