java - 如何为 {http ://docs. oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd} 添加虚拟 SOAPHandler?

标签 java jakarta-ee soap jax-ws

我正在使用 jax-ws 从 JAVA 调用使用 WS-Security 的 SOAP 服务。 问题是响应包含一些 MustUnderstand header ,并且我收到 Element notunderstanded SoapFaultException

响应 header 如下所示:

 <s:Header>
  <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
     <u:Timestamp u:Id="_0">
        <u:Created>2011-12-19T15:38:49.023Z</u:Created>
        <u:Expires>2011-12-19T15:43:49.023Z</u:Expires>
     </u:Timestamp>
  </o:Security>

我可以为该 header 添加一个虚拟 SOAPHandler 吗?或者也许将其修改为mustUnderstand =“0”?以及如何?

最佳答案

错过了重写handler中的getHeaders()方法。重写getHeaders()方法

@Override
    public Set<QName> getHeaders() {
        final QName securityHeader = new QName(
            "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd",
            "Security",
            "wsse");

        final HashSet headers = new HashSet();
        headers.add(securityHeader);

        // notify the runtime that this is handled
        return headers;
    }

关于java - 如何为 {http ://docs. oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd} 添加虚拟 SOAPHandler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8563985/

相关文章:

java - 使用数组进行 JPA 查找

java - 获取SQLException java.sql.SQLException : ResultSet. next was not called

delphi - SOAPUI 中的错误请求

java - Spring-amqp - 消息处理延迟

java - AnnotationConfigApplicationContext 注册并刷新另一个配置类

java - 选取相关对象的前N个元素

java - 在 Java 中执行 Linux nodejs 命令行

java - Java EE 服务器上的动态角色

java - Netbeans:如何将 Java EE 容器添加到 java 项目

python - 在 Python 中从 WSDL 文件创建模拟 Web 服务