【问题标题】:How to tell Apache Tomcat who must handle received data?如何告诉 Apache Tomcat 谁必须处理接收到的数据?
【发布时间】:2019-04-04 13:11:44
【问题描述】:

我正在使用最新的 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 是否主动将接收到的数据发送到服务器。是在配置文件中的某个地方期待数据吗?
  • 服务器是否定期轮询以查看是否已收到数据?

【问题讨论】:

    标签: tomcat server war web-deployment catalina


    【解决方案1】:

    Tomcat 通过查看您请求的 URL 知道哪个应用程序将处理您的请求,并检查是否有任何 context 匹配。没有等待或轮询,事情是自动链接的。

    在您的情况下,您只是在 webapps 目录中复制一个战争文件,这称为Automatic Application Deployment。还有其他配置上下文的方法,但最好在足够的情况下保持简单。

    如果您使用虚拟主机,事情会稍微复杂一些,因为 Tomcat 会首先检查您请求的域名,然后检查所涉及的上下文。

    【讨论】:

      猜你喜欢
      • 2020-04-08
      • 2012-06-25
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 2019-03-15
      • 1970-01-01
      • 1970-01-01
      • 2018-12-05
      相关资源
      最近更新 更多