如何从SOAP标头元素中删除名称空间

时间:2019-06-18 11:28:26

标签: java soap xml-namespaces saaj

我正在尝试使用JAVAX jars在soap标头中设置用户名和密码。但是我的输出是带有两个名称空间。

我正在尝试在IBM Websphere中部署我的应用程序,但是我收到一条错误消息,说不支持com.sun * jars。因此,我正在尝试使用JAVAX。* jars。

我想删除在输出中重复的名称空间,或者只删除soap标头中的用户名字段。

QName qNameUserCredentials = new 
            QName("http://schemas.xmlsoap.org/soap/envelope/", "Username", 
            "soapenv1");
            SOAPHeaderElement username =   header.addHeaderElement(qNameUserCredentials);username.addTextNode(usrname);
username.setPrefix("");

这是输出结果:

<SOAP-ENV:Header>
   <Username 
   xmlns="http://schemas.xmlsoap.org/soap/envelope/" 
   xmlns:soapenv1="http://schemas.xmlsoap.org/soap/envelope/">
       test
    </Username> 
</SOAP-ENV:Header>

但是,我期望的输出是:-

<soapenv:Header>
  <Username xmlns:soapenv1="http://schemas.xmlsoap.org/soap/envelope/">
       test
   </Username> 
   <Password>test</Password>
</soapenv:Header>

能帮我删除冗余名称空间吗?

0 个答案:

没有答案