Я работаю над различными env DEV, TEST, STAGE и пытаюсь использовать размещенный веб-сервис (DEV, TEST AND PROD). После создания клиентской заглушки и последующего тестирования в системе DEV я пытаюсь переместить его в другую среду, например TEST. Я хотел избежать создания STUB для каждой среды и могу изменить конечную точку в клиенте перед вызовом:
BindingProvider prov = (BindingProvider) port;
prov.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "test");
prov.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "test");
prov.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY , $ENDPOINTURL);
При переопределении конечной точки перед ее вызовом возникает исключение: javax. xml .ws. soap .SOAPFaultException: часть сообщения {$ ENDPOINT} PartNumRequest не была распознана. (Существует ли он в службе WSDL?)
Мне нужна помощь по клиентскому коду веб-сервиса, чтобы не требовалось генерировать заглушку для каждой среды, когда структура WSDL одинакова:
Клиент используемый код:
//PartNum_Service service = new PartNum_Service(wsdl,qname);
PartNum_Service service = new PartNum_Service();
System.out.println("**********"+service.getServiceName())
PartNum port = service.getPartNumSOAP();
BindingProvider prov = (BindingProvider) port;
prov.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "TEST");
prov.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "TEST");
prov.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY , $ENDPOINT);
PartNumInData input = new PartNumInData();
input.setAction("Create");
input.setPart("121212");
System.out.println("BEFORE call::");
PartNumOutData OUT= port.partNum(input);