小编Ven*_*ddi的帖子

如何使用wsdl生成的java对象发出soap请求时添加soap标头

我使用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>
Run Code Online (Sandbox Code Playgroud)

生成的java对象具有调用服务,创建对象和构造头的方法.但是,我在拨打电话时设置标头时遇到问题.

这是我正在使用的代码:

IpsApiService service = new IpsApiService();
IpsApiPortType port = service.getIpsApiSoapPort();
SearchAssetsParam searchAssetsParam = buildSearchAssetsParam();
SearchAssetsReturn response = port.searchAssets(searchAssetsParam);
Run Code Online (Sandbox Code Playgroud)

buildSearchAssetsParam()构造请求对象.我创建了头对象,如下所示:

AuthHeader header = new AuthHeader();
header.setUser("username@gmail.com");
header.setPassword("password1");
Run Code Online (Sandbox Code Playgroud)

如何将此AuthHeader设置为服务请求?

谢谢,Venu

java soap web-services soap-client soapheader

5
推荐指数
1
解决办法
7万
查看次数

标签 统计

java ×1

soap ×1

soap-client ×1

soapheader ×1

web-services ×1