2

我使用 XFire 作为 Spring Remoting 的 Web 服务提供者。我正在使用 AbstractHandler 来验证 SOAP 请求。这个想法是通过原始服务器的域和 API 密钥(a-la Google Maps)来识别请求。唯一的问题是,我似乎无法找到从仅接受 MessageContext 对象的 invoke() 方法中获取 ServletRequest 对象的方法。

我能想到的唯一想法是使用过滤器并将请求对象存储在 ThreadLocal 变量中,但我真的更愿意避免这种解决方案。

有任何想法吗?

干杯

4

1 回答 1

2

我还没有对此进行测试,但我手边有 XFire 的源代码,所以我深入研究了这些课程,看看这是否容易。从对您的调用中,invoke您应该能够ServletRequest使用以下代码获得:

ServletRequest request = (ServletRequest) context.getProperty(org.codehaus.xfire.transport.http.XFireServletController.HTTP_SERVLET_REQUEST);
于 2009-01-06T19:12:33.513 回答