1 回答

TA贡献1829条经验 获得超13个赞
最后,我设法找到了解决上述问题的方法。它如下:
在谷歌上搜索了很多之后,我发现了一个Web 服务处理程序的概念,可以分别为从 Web 服务提供者接收或发送的每个请求和响应调用它。
如何配置: 1. 创建一个 Java File SecurityHandler 并在其中粘贴以下代码:
public class SecurityHandler implements SOAPHandler<SOAPMessageContext>
{
@Override
public boolean handleMessage(SOAPMessageContext context)
{
boolean outbound = (Boolean)context.get(SOAPMessageContext.MESSAGE_OUTBOUND_PROPERTY);
if(outbound) {
//logic to handle a response
}
if (!outbound) {
//logic to handle a request
}
return true;
}
@Override
public boolean handleFault(SOAPMessageContext context) {
return true;
}
@Override
public void close(MessageContext context) {}
@Override
public Set<QName> getHeaders() {
return Collections.emptySet();
}
}
使用以下代码示例创建一个 XML 文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<javaee:handler-chains
xmlns:javaee="http://java.sun.com/xml/ns/javaee"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<javaee:handler-chain>
<javaee:handler>
<javaee:handler-class>your.package.path.SecurityHandler</javaee:handler-class>
</javaee:handler>
</javaee:handler-chain>
</javaee:handler-chains>
要激活对您公开的 Web 服务的每个请求或响应的处理程序,请在 Web 服务类中添加注释,如下所示:
@HandlerChain(file="/your/package/path/handler-chain.xml")
公开课我的网络服务{
//要公开的方法或网络服务。
}
添加回答
举报