Я работаю над веб-сервисами. Я хочу знать, как добавить заголовки в запрос SOAP в веб-службах типа JAX-WS.
Считайте мой заголовок таким.
Map<String, List<String>> headers = new HashMap<String, List<String>>();
headers.put("Username", Collections.singletonList("aaaa"));
headers.put("Password", Collections.singletonList("aaaa"));
У меня есть объект-заглушка в моем клиентском классе. Я использую Apache Axis 2. Все классы создаются автоматически.
SimpleSTub stub = new Simplestub();
Я хочу добавить эту информацию заголовка в client.
MessageContext.HTTP_REQUEST_HEADERS, headers
Изменить
Фактическая реализация в нормальном классе находится как
закрытая статическая конечная строка WS_URL = "http: // localhost: 9999 / ws / hello? wsdl";
public static void main (String [] args) выдает исключение {
URL url = новый URL (WS_URL); QName qname = new QName ("http://ws.mkyong.com/", "HelloWorldImplService");
Service service = Service.create(url, qname);
HelloWorld hello = service.getPort(HelloWorld.class);
/*******************UserName & Password ******************************/
Map<String, Object> req_ctx = ((BindingProvider)hello).getRequestContext();
req_ctx.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, WS_URL);
Map<String, List<String>> headers = new HashMap<String, List<String>>();
headers.put("Username", Collections.singletonList("mkyong"));
headers.put("Password", Collections.singletonList("password"));
req_ctx.put(MessageContext.HTTP_REQUEST_HEADERS, headers);
/**********************************************************************/
System.out.println(hello.getHelloWorldAsString());
Кто-нибудь может сказать, как этого добиться.
Спасибо.