我创建了一个简单的swing Web服务客户端,以从ServiceNow(www.servicenow.sg)开发服务调用示例SOAP Web服务。它调用正确,但出现“服务器已发送HTTP状态代码401:未经授权”的错误消息。但是已经尝试在SoapUI中使用,并且在将身份验证详细信息添加到“请求属性”中时,它可以正常工作。
尝试在代码中执行相同的操作,但仍然出现401错误。
注意:在SoapUI WS调用程序日志中,它最初显示它收到401错误,而在第二次尝试中得到正确的响应。
代码段
ServiceNowIncident service = new ServiceNowIncident();
ServiceNowSoap snSoap = service.getPort(ServiceNowSoap.class);
Map<String, Object> req_ctx = ((BindingProvider) snSoap).getRequestContext();
req_ctx.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, WEBSERVICE_URL);
req_ctx.put(BindingProvider.USERNAME_PROPERTY, "user_name");
req_ctx.put(BindingProvider.PASSWORD_PROPERTY, "password");
SoapUI请求属性
SoapUI日志