【问题标题】:How to intercept outgoing request on tomcat?如何拦截tomcat上的传出请求?
【发布时间】:2011-03-30 19:04:22
【问题描述】:

在 tomcat 上运行了两个应用程序:

  • 应用程序 1 (JSP)
  • 应用程序2(Web 服务)

我想设置从 Application1 发出的请求参数(用户对象,包含有关当前用户的信息),当此请求到达 Application2 时,我想检索参数并更改 Application2 中的一些本地配置。

我知道我可以使用 Filter 过滤 Application2 中的传入请求,但是如何过滤 Application1 中的传出请求?

【问题讨论】:

  • 尝试使用 tomcat 自定义阀门,但我需要将我的 .class 放在类加载器树中我需要的其他类之上。所以当我的阀门执行时,我的 User 类会得到 ClassNotFoundException。

标签: tomcat request intercept


【解决方案1】:

当您说“发出的请求”时,我理解这是“响应”。我建议您也使用 Servlet 过滤器在 Application1 通过正常的过滤器/处理链后对其进行更改。

即:

filterchain.doFilter(request, response);
//code here...

我不明白您如何使用Apache Valve 修改请求/响应参数。

【讨论】:

  • 过滤器只拦截传入的请求和传出的响应。我想拦截对 JAXWS Web 服务发出的请求。就像在它成为 Application2 中的传入请求之前拦截来自 Application1 的请求一样。我能够通过实现一个 SOAPHandler 来实现我的目标,这样我就能够拦截 SOAP 消息,添加标头参数,当 SOAP 消息到达我的 Application2 时,我提取了这些标头。
【解决方案2】:

我能够通过实现一个 SOAPHandler 类来实现我的目标。我能够拦截 SOAP 消息,添加标头参数,当 SOAP 消息到达 Application2 时,我提取了这些标头信息,实现了相同的 SOAPHandler。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 2019-02-19
    • 2018-05-04
    相关资源
    最近更新 更多