This chapter provides sample instructions for deploying the WAR to Apache Tomcat. See Upgrading for Apache Tomcat Deployments for instructions on updating to a newer version of the SOAtest and Virtualize Server.
The first example outlines the recommended method for deploying a WAR file at the root context of Apache Tomcat. The second example describes a shortcut for an easier (but not recommended) installation method. Using a "non-root" context might not work for some servlet containers.
One way to deploy the WAR file with Apache Tomcat at the ROOT context path is as follows:
Open <TOMCAT_HOME>/conf/Catalina/localhost/ROOT.xml file and add a Context element such as the following (making the appropriate adjustments to docBase absolute path as needed, depending on your specific <SOAVIRT_HOME> location):
<Context docBase="c:/wars/soavirt" path="" reloadable="true" /> |
<JAVA_HOME>/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /path/to/my/keystore
A new file in the /path/to/my directory named "keystore" will be created. Uncomment the SSL HTTP/1.1 Connector entry in the <TOMCAT_HOME>/conf/server.xml configuration file:
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 --> <Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="${user.home}/.keystore" keystorePass="changeit" clientAuth="false" sslProtocol="TLS"/> keystoreFile attribute value to "/path/to/my/keystore" |
server.port.http=8080
or server.port.https=8443
. The ports specified in config.properties must match the ports specified in the Tomcat configuration.There are no deployments on this server. Cannot respond to this request: /. |
By default, a workspace directory will be created in <SOAVIRT_HOME>.
Although this method is easier than the first, it is not recommended because it removes the default Tomcat ROOT web application.
<JAVA_HOME>/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /path/to/my/keystore
Uncomment the SSL HTTP/1.1 Connector entry in the <TOMCAT_HOME>/conf/server.xml configuration file:
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 --> <Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="${user.home}/.keystore" keystorePass="changeit" clientAuth="false" sslProtocol="TLS"/> keystoreFile attribute value to "/path/to/my/keystore" |
server.port.http=8080
or server.port.https=8443
. The ports specified in config.properties must match the ports specified in the Tomcat configuration.There are no deployments on this server. Cannot respond to this request: /. |
By default, a workspace directory will be created in <TOMCAT_HOME>/webapps/ROOT.
Depending on your infrastructure and project requirements, your Tomcat server may require additional configuration.
The SOAtest and Virtualize server supports Tomcat's relaxedPathChars
and relaxedQueryChars
properties. These properties enable you to specify which unencoded characters should be allowed in URI paths and URI query strings. You can specify the following characters: " < > [ \ ] ^ ` { | }
Refer to the Tomcat documentation for additional information: https://tomcat.apache.org/tomcat-8.5-doc/config/http.html
If you do not specify which characters are allowed, the Tomcat server will reject messages that contain one or more of the unencoded characters in URI paths and queries.
Add the relaxedPathChars
and relaxedQueryChars
properties to the <Connector>
element in the Tomcat's server.xml file and specify the characters you want to allow. If there is more than one <Connector>
element, add the attributes to the elements with the protocol
set to HTTP
and HTTPS
.
Example:
<Connector URIEncoding="UTF-8" allowTrace="true" connectionTimeout="20000" enableLookups="true" name="default" port="9080" protocol="HTTP/1.1" redirectPort="9443" server="Parasoft Server" relaxedPathChars="" < > [ \ ] ^ ` { | }" relaxedQueryChars="" < > [ \ ] ^ ` { | }" /> |
You can enable Tomcat to set a custom HTTP status code message. This allows Virtualize to customize status messages in response headers if your responders set custom HTTP status messages. Add the following property to the conf/catalina.properties file when deploying the Virtualize Server WAR file:
org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER=true
See https://tomcat.apache.org/tomcat-8.5-doc/config/systemprops.html for additional information about setting this property.