这是我第一次使用soap Web服务。我正在尝试访问此 wsdl https://servis.turkiye.gov.tr/services/g2g/kdgm/test/uetds?wsdl。我用 eclipse ws 客户端工具生成了所有文件。我正在尝试访问其方法。我知道服务需要身份验证。但我无法正确地做到这一点。这就是我到目前为止尝试过的。
UdhbUetdsService_ServiceLocator locator = new UdhbUetdsService_ServiceLocator();
UdhbUetdsService_PortType portType = locator.getUdhbUetdsServicePort();
UetdsYtsUser user = new UetdsYtsUser();
user.setKullaniciAdi("999999");
user.setSifre("999999testtest");
System.out.println(portType.seferAktif(user, 1L, "test"));
这就是我解决它的方式,我使用 wsimport 而不是 eclipse 客户端生成器生成文件。比最终代码是这样的。
UdhbUetdsService_Service service = new UdhbUetdsService_Service();
UdhbUetdsService port = service.getUdhbUetdsServicePort();
BindingProvider bp = (BindingProvider) port;
Map<String, Object> map = bp.getRequestContext();
map.put(BindingProvider.USERNAME_PROPERTY, "user");
map.put(BindingProvider.PASSWORD_PROPERTY, "password");
System.out.println(port.servisTest("Hello"));