2016-06-21 12 views
1

軸1の石鹸スタブから応答ヘッダーを取得する方法を知っていますか?axis1スタブからトランスポートの応答ヘッダーを取得する方法

レスポンスログ

HTTP/1.1 200 OK 
Server: Jetty(8.1.17.v20150415) 
Content-Type: text/xml;charset=UTF-8 
Content-Length: 1547 
MyHeader: test 
Date: Mon, 20 Jun 2016 04:41:20 GMT 

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body> 
........ 
</soap:Body> 
</soap:Envelope> 

Javaから、私はこの方法をinvoke2使用し、レスポンスヘッダを取得するためのMessageContextを渡します。しかし、上で提供されたヘッダーを取得できませんでした。

invoke2(soapBindingStub._getCall().getMessageContext()); 

public void invoke2(org.apache.axis.MessageContext context) throws AxisFault { 
     System.out.println("invoke 2 called"); 
     Iterator pros = context.getAllPropertyNames(); 
     while (pros.hasNext()) 
      System.out.println("Name : " + pros.next()); 
     if (!(context.getProperty("transport.http.servletResponse") instanceof HttpServletResponse)) return; 

     StringBuilder headers = new StringBuilder(); 
     HttpServletResponse request = (HttpServletResponse)context.getProperty(MessageContext.HTTP_RESPONSE_HEADERS); 

     Collection c = request.getHeaderNames(); 
     Iterator e = c.iterator(); 
     while (e.hasNext()) { 
      String headerName = (String)e.next(); 
      headers.append(String.format("%s: %s%n", headerName, request.getHeader(headerName))); 
     } 

     // log 
     System.out.println(headers.toString()); 
     } 

くださいAXIS1石鹸スタブから「 MyHeaderを」レスポンスヘッダを取得するために私を助けることができますか?

ありがとう。

答えて

0

今は問題ありません。

String[] header1 = soapBindingStub._getCall().getMessageContext().getResponseMessage().getMimeHeaders().getHeader("MyHeader"); 
logger.info(loggerHeader + "header1[0] ="+header1[0]); 

ありがとうございます。

関連する問題