私はWebサービスに取り組んでいます。JAX-WS タイプの Web サービスで SOAP リクエストにヘッダーを追加する方法を知りたいです。
My ヘッダーを次のように考えます。
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
編集
として見つかった通常のクラスでの実際の実装
private static final String WS_URL = "http://localhost:9999/ws/hello?wsdl";
public static void main(String[] args) throws Exception {
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());
これを達成する方法を教えてください。
ありがとう。