本章节提供了将 WAR 文件部署到 Apache Tomcat 的示例说明。有关更新到新版本的 SOAtest 和 Virtualize 服务器的说明,请查阅 升级 Apache Tomcat 部署 。
第一个示例概述了在 Apache Tomcat 的根上下文中部署 WAR 文件的推荐方法。第二个示例描述了一种更简单(但不推荐)安装方法的快捷方式。使用“non-root”上下文可能不适用于某些 servlet 容器。
在根上下文路径上使用 Apache Tomcat 部署 WAR 文件的一种方法,如下所示:
打开 <TOMCAT_HOME>/conf/Catalina/localhost/ROOT.xml 文件,并添加一个上下文元素,如下所示(根据具体的 <SOAVIRT_HOME> 位置,根据需要对 docBase 绝对路径进行适当的调整):
<Context docBase="c:/wars/soavirt" path="" reloadable="true" /> |
<JAVA_HOME>/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /path/to/my/keystore
将在 /path/to/my 目录中创建一个名为“keystore”的新文件。取消对 <TOMCAT_HOME>/conf/server.xml 配置文件中的 SSL HTTP/1.1 连接器条目的注释:
<!-- 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
或 server.port.https=8443
。在 config.properties 文件中指定的端口必须与 Tomcat 配置中指定端口相匹配。There are no deployments on this server. Cannot respond to this request: /. |
默认情况下,将在 <SOAVIRT_HOME> 中创建工作空间目录。
虽然这个方法比第一个方法更简单,但是不推荐使用它,因为它删除了默认的 Tomcat ROOT web 应用程序。
<JAVA_HOME>/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /path/to/my/keystore
取消对 <TOMCAT_HOME>/conf/server.xml 配置文件中的 SSL HTTP/1.1 连接器条目的注释:
<!-- 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
或 server.port.https=8443
。在 config.properties 文件中指定的端口必须与 Tomcat 配置中指定端口相匹配。There are no deployments on this server. Cannot respond to this request: /. |
默认情况下,将在 <TOMCAT_HOME>/webapps/ROOT 中创建工作空间目录。
根据您的基础设施和项目需求,您的 Tomcat 服务器可能需要额外的配置。
SOAtest 和 Virtualize 服务器支持 Tomcat 的 relaxedPathChars
and relaxedQueryChars
属性。这些属性使您能够指定在 URI 路径和 URI 查询字符串中应允许哪些未编码字符。可以指定以下字符:" < > [ \ ] ^ ` { | }
有关更多详情,请参考 Tomcat 文档: https://tomcat.apache.org/tomcat-8.5-doc/config/http.html
如果不指定允许的字符,Tomcat 服务器将拒绝 URI 路径和查询中包含一个或多个未编码字符的消息。
将 relaxedPathChars
和 relaxedQueryChars
属性添加到 Tomcat server.xml 文件的 <Connector>
元素中, 并指定要允许的字符。如果有多个 <Connector>
元素,请将 属性添加值 protocol
设置为 HTTP
和 HTTPS
的元素中。
例如:
<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="" < > [ \ ] ^ ` { | }" /> |
您可以启用 Tomcat 来设置自定义 HTTP 状态码消息。如果您的应答器设置了自定义 HTTP 状态消息,则这允许 Virtualize 在响应报头中自定义状态消息。在部署 Virtualize 服务器 WAR 文件时,将以下属性添加到 conf/catalina.properties 文件中:
org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER=true
有关设置此属性的其他信息,请查阅 https://tomcat.apache.org/tomcat-8.5-doc/config/systemprops.html 。