我使用 JAX-WS RI 生成了客户端 java 对象。我正在尝试向 Web 服务发出 SOAP 请求。服务需要在标头中进行身份验证,如下所示:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<xsd:authHeader>
<xsd:user>username@gmail.com</xsd:user>
<xsd:password>password1</xsd:password>
</xsd:authHeader>
</soapenv:Header>
<soapenv:Body>
<ns:searchAssetsParam>
<ns:includeSubfolders>true</ns:includeSubfolders>
<ns:resultsPage>2</ns:resultsPage>
</ns:searchAssetsParam>
</soapenv:Body>
</soapenv:Envelope>
生成的 java 对象具有调用服务、创建对象和构造标头的方法。但是,我在拨打电话时无法设置标题。
这是我正在使用的代码:
IpsApiService service = new IpsApiService();
IpsApiPortType port = service.getIpsApiSoapPort();
SearchAssetsParam searchAssetsParam = buildSearchAssetsParam();
SearchAssetsReturn response = port.searchAssets(searchAssetsParam);
buildSearchAssetsParam() 构造请求对象。我按如下方式创建了标头对象:
AuthHeader header = new AuthHeader();
header.setUser("username@gmail.com");
header.setPassword("password1");
如何将此 AuthHeader 设置为服务请求?
谢谢,维努