6.2.2. Deployment in WAR
You can deploy CUBA applications to WAR files using the buildWar build task and run them on any Java servlet container. An example of deployment of the WAR files to the Jetty web server is provided below.
-
Add the buildWar task to the end of build.gradle:
task buildWar(type: CubaWarBuilding) { appHome = '${app.home}' singleWar = false }
TipPlease note that we build two separate WAR files for Middleware and Web Client blocks here. If you want to combine them into one WAR file with the
singleWar = true
parameter, provide the specialweb.xml
file as described in this section. -
Start build process:
gradlew buildWar
As a result, the
app-core.war
andapp.war
files will be created in thebuild\distributions\war
project subdirectory. -
Create an application home directory, for example,
c:\work\app_home
. -
Create a Logback configuration file. You can take the
logback.xml
file from thebuild\tomcat\conf
project directory after the standard fast deployment to Tomcat. Replace the${catalina.home}
variable to${app.home}
in the file content and place the file into the application home directory. -
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-base
directory, 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.xml
file 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>
-
Add the following text to the beginning of
c:\work\jetty-base\start.ini
file:--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\ext
directory. You can take the driver file from the CUBA Studiolib
directory or from thebuild\tomcat\lib
project directory. In case of PostgreSQL database, it ispostgresql-9.1-901.jdbc4.jar
. -
Copy WAR files to the
c:\work\jetty-base\webapps
directory. -
Open the command prompt in the
c:\work\jetty-base
directory and run:java -jar c:\work\jetty-home\start.jar
-
Open
http://localhost:8080/app
in your web browser. -
Log files are created in the
c:\work\app_home\logs
directory.