Web services Web服务代理筛选器实现
我们正在尝试创建一个web服务代理筛选器,该筛选器将用于筛选对实际远程web服务的web服务调用。(春天/雄猫) “web服务过滤器web服务”应该接受来自web服务客户端的新soap请求,根据一些输入数据过滤请求,如果数据有效,它应该重定向到远程web服务 远程web服务应该响应web服务客户端 理想情况下,客户端应该使用远程web服务WSDL构建,他们应该只将端点更改为新的web服务过滤器Web services Web服务代理筛选器实现,web-services,proxy,filter,Web Services,Proxy,Filter,我们正在尝试创建一个web服务代理筛选器,该筛选器将用于筛选对实际远程web服务的web服务调用。(春天/雄猫) “web服务过滤器web服务”应该接受来自web服务客户端的新soap请求,根据一些输入数据过滤请求,如果数据有效,它应该重定向到远程web服务 远程web服务应该响应web服务客户端 理想情况下,客户端应该使用远程web服务WSDL构建,他们应该只将端点更改为新的web服务过滤器 从远程web服务WSDL创建web服务客户端->调用筛选器web服务代理->分析输入数据->重定向到远
从远程web服务WSDL创建web服务客户端->调用筛选器web服务代理->分析输入数据->重定向到远程web服务->远程web服务将响应web服务客户端。因此,您的代理需要能够解析SOAP请求以提取一些“输入数据” 然而,为了避免生成Java存根并避免所有的反序列化处理开销,我将实现一个
javax.xml.ws.Provider
,类似于
@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
}
}
@javax.xml.ws.ServiceMode(value=javax.xml.ws.Service.Mode.MESSAGE)
@javax.xml.ws.WebServiceProvider(
wsdlLocation=“/mypath/my.wsdl”,
targetNamespace=“我的命名空间”,
serviceName=“ProcessService”,
portName=“ProcessPort”
)
公共类ProcessServerRaw实现提供程序{
公共SOAPMessage调用(最终SOAPMessage请求){
//在此处处理SOAP消息对象,并将其原样重定向到最终的SOAP web服务
}
}