java使用授权头消费SOAP服务

时间:2016-08-03 19:00:39

标签: java web-services soap

我正在尝试将身份验证信息插入到要执行的标头请求中 一种较旧的基于SOAP的.Net服务(.asmx)。我在NetBeans 8.1下使用了ws-input 导入wsdl并生成对客户端的调用,但无法查看如何插入 标题信息。我尝试了以下方法来插入标头信息, 但Web服务返回一个错误,表明它没有看到身份验证。 有什么想法吗?

try
{
    com.CompanyService.api.CompanyServiceApi service = new com.CompanyService.api.CompanyServiceApi();
    com.CompanyService.api.CompanyServiceApiSoap port = service.getCompanyServiceApiSoap();

    Map<String, Object> req_ctx = ((BindingProvider) port).getRequestContext();
    req_ctx.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://api.CompanyService.com/CompanyServiceApi.asmx");

    Map<String, List<String>> headers = new HashMap<String, List<String>>();
    headers.put("LoginName", Collections.singletonList("WebService"));
    headers.put("Username", Collections.singletonList("xxxxxxx"));
    req_ctx.put(MessageContext.HTTP_REQUEST_HEADERS, headers);

    res = port.getCustomers(getCustomersRequest);
}
catch (Exception e) { 
    System.out.println("Error");
}

0 个答案:

没有答案