1

我使用 Netbeans 生成了一个 JAX-WS Web 服务客户端,一切正常,除非我将 Axis2 库添加到项目中,UsernameToken 将从soap 标头中删除并且soap 消息看起来略有不同。我对 Java Web 服务很陌生,所以我真的很想了解发生了什么以及如何解决这个问题。我需要 Axis2 库的原因是我正在将一个客户端添加到一个具有许多 Axis2 客户端的大型项目中。

存在 Axis2 库时生成的 SOAP:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header>
    <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" />
</soapenv:Header>
<soapenv:Body>
    <ns2:AddOrUpdate xmlns:ns2="http://tempuri.org/" xmlns="http://schemas.datacontract.org/2004/07/Service.DataTransferObjects" xmlns:ns4="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:ns3="http://schemas.datacontract.org/2004/07/Service.ServiceUtils">
    <ns2:employee />
    </ns2:AddOrUpdate>
</soapenv:Body>

生成的没有 Axis2 库的 SOAP:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
    <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <wsse:UsernameToken>
        <wsse:Username>username</wsse:Username>
        <wsse:Password>password1</wsse:Password>
    </wsse:UsernameToken>
    </wsse:Security>
</S:Header>
<S:Body>
<AddOrUpdate xmlns="http://tempuri.org/" xmlns:ns2="http://schemas.datacontract.org/2004/07/Service.DataTransferObjects" xmlns:ns3="http://schemas.datacontract.org/2004/07/Service.ServiceUtils" xmlns:ns4="http://schemas.microsoft.com/2003/10/Serialization/">
    <employee/>
</AddOrUpdate>
</S:Body>

4

0 回答 0