Jar*_*red 8 java soap web-services spring-ws
我有一个用例,如果SOAP请求没有针对NewWebService的XSD和WSDL进行验证,则需要对NewWebService的所有调用都路由到OldWebService.NewWebService位于ServerA上,OldWebService位于ServerB上.
抽象地说,我知道我需要一些机制来允许我接受命中NewWebService的SOAP请求,将其发送到OldWebService,然后将SOAP结果返回给客户端.我对spring-ws的有限经验使得很难决定如何实现这一目标.
我的第一个想法是在NewWebService中构建一个SOAP客户端,只要无法验证有效负载,就会调用OldWebService.这是最好的解决方案,还是有更好的方法允许NewWebService充当某些请求的传递?
我的解决方案是编写一个自定义SoapRequestFilter,它实现了一个javax.servlet.Filter和一个扩展HttpServletRequestWrapper的新类.由于HttpServletRequestWrapper实现了HttpServletRequest接口,因此扩展包装器允许您复制HttpRequest并在不占用对象的情况下对流进行操作并导致下游问题.
一旦我有了过滤器和包装器,我就能够从HttpRequest解析端点和有效负载.如果需要重定向请求,我为旧的SOAP WebService创建了一个新的HttpUrlConnection,并将InputStream从该响应设置为HttpResponse的OutputStream.
| 归档时间: |
|
| 查看次数: |
8951 次 |
| 最近记录: |