我正在使用最新的Apache Tomcat(9.0.16),以及最新的Java / OpenSSL。我从NEXUSe2e.org获得了一个带有服务器应用程序的WAR文件。
我能够向服务发送安全消息。过了一会儿,有人会发送安全回复消息作为新的https消息。
在日志记录中,我可以看到TomCat正在解密此消息。检测到这是一个新的SOAP action: ebXML
。
这是使用文件%catalina_home%\conf\server.xml
中的以下连接器完成的
<Connector
port="443"
protocol="org.apache.coyote.http11.Http11AprProtocol"
redirectPort="8443"/>
<Connector
port="8443"
protocol="org.apache.coyote.http11.Http11AprProtocol"
SSLEnabled="true"
secure="true"
scheme="https"
defaultSSLHostConfigName="_default_">
<SSLHostConfig
hostName="_default_"
certificateVerification="required"
<Certificate
certificateChainFile="conf\Certificates\TrustedCertificates.pem"
certificateFile="conf\Certificates\... .crt"
certificateKeyFile="conf\Certificates\... .private.key"/>
</SSLHostConfig>
</Connector>
当数据被正确解密后,它必须转到我的服务器代码(NEXUSe2e)。 TomCat如何知道谁必须处理数据?
Tomcat通过查看您请求的URL知道哪个应用程序将处理您的请求,并检查是否有任何context匹配。没有等待或轮询,事物会自动链接。
在您的情况下,您只是在webapps目录中复制war文件,这称为Automatic Application Deployment。还有其他方法可以配置上下文,但在足够的情况下保持简单是很好的。
如果您使用虚拟主机,事情会有点复杂,因为Tomcat将首先检查您请求的域名,然后检查相关的上下文。