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

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

有什么想法吗?

干杯

有帮助吗?

解决方案

我没有测试过这个,但我有XFire的来源,所以我挖了几个班,看看这是否容易。从对 invoke 的调用中,您应该能够使用以下代码获取 ServletRequest

ServletRequest request = (ServletRequest) context.getProperty(org.codehaus.xfire.transport.http.XFireServletController.HTTP_SERVLET_REQUEST);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top