如何从XFire AbstractHandler的invoke()方法中获取ServletRequest对象?
-
03-07-2019 - |
题
我正在使用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);
不隶属于 StackOverflow