2
我正在從事Web服務。我想知道如何在JAX-WS類型的Web服務中爲SOAP請求添加標頭。如何將消息上下文頭添加到Apache軸2 Java
請考慮我這樣的標題。
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();
我想在客戶端添加這個頭信息。
MessageContext.HTTP_REQUEST_HEADERS, headers
編輯
在正常類實際執行中發現的
私有靜態最後絃樂WS_URL = 「HTTP://本地主機:9999/WS/WSDL你好」;
公共靜態無效的主要(字串[] 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());
任何人都可以告訴如何實現這一點。
謝謝。
感謝您的解決方案。如果你能告訴我在服務類中訪問它的方式也是很棒的。 – Patan
@ User222,看看[這個答案](http://stackoverflow.com/a/13302564/1530938),並用請求代替「響應」。儘管如此,還有其他方法可以在服務bean中完成它。如果上面的答案解決了這個問題,請不要忘記接受它 – kolossus
我收到異常,因爲存根無法輸入到BindingPort。我編輯了這個問題。請檢查。 – Patan