Web服务代理过滤器实现

时间:2012-03-28 15:06:46

标签: web-services proxy filter

我们正在尝试创建一个Web服务代理过滤器,该过滤器将用于过滤对实际远程Web服务的Web服务调用。 (春/ Tomcat)的

“Web服务过滤器Web服务”应接受来自Web服务客户端的新soap请求,根据某些输入数据过滤请求,如果数据有效,则应重定向到远程Web服务。

远程Web服务应响应Web服务客户端。

理想情况下,客户端应该建立在使用远程Web服务WSDL的基础上,它们应该只是将端点更改为新的Web服务过滤器。

从远程Web服务WSDL创建Web服务客户端 - >调用过滤器Web服务代理 - >分析输入数据 - >重定向到远程Web服务 - >远程Web服务将响应Web服务客户端。

1 个答案:

答案 0 :(得分:1)

因此,您的代理需要能够解析SOAP请求以提取一些“输入数据”。

然而,为了避免生成Java存根并避免所有反序列化处理开销,我会实现javax.xml.ws.Provider<SOAPMessage>,类似于

@javax.xml.ws.ServiceMode(value = javax.xml.ws.Service.Mode.MESSAGE)
@javax.xml.ws.WebServiceProvider(
    wsdlLocation = "/mypath/my.wsdl", 
    targetNamespace = "my-namespace", 
    serviceName = "ProcessService", 
    portName = "ProcessPort"
)
public class ProcessServerRaw implements Provider<SOAPMessage> {



    public SOAPMessage invoke(final SOAPMessage request) {

//process your SOAP message object here and redirect it as is to your final SOAP web service    

    }
}