2014-09-23 15 views
1

目前我面臨的問題是我需要添加一個自定義HTTP頭到org.apache.axis.client.Call。但是我所能找到的就像添加SOAP Headers一樣,但這不是我想要的。Org.Apache.Axis設置HTTPHeader

添加一個簡單的SOAPHeader很容易:

SOAPHeaderElement header = new SOAPHeaderElement(new javax.xml.namespace.QName("SessionID"), sessionId); 
     _call.addHeader(header); 

,但我可以做什麼HTTPHeaders simiular?

非常感謝。

回答

1

及其在以下網址進行了說明:
http://www.coderanch.com/how-to/java/WebServicesHowTo

MessageContext msgContext = _call.getMessageContext(); 
MimeHeaders hd = msgContext.getMessage().getMimeHeaders(); 
hd.addHeader("SessionID", sessionId); 
+1

的這個實現的問題是我沒有SOAPMessage,所以我不能使用這個。你有其他的解決方案,只能使用org.apache.axis.client.Stub嗎? – DominikAngerer 2014-09-23 07:18:29

+0

我明白了,然後嘗試查看處理程序? http://docs.oracle.com/cd/E13222_01/wls/docs103/webserv_adv/handlers.html – user3085390 2014-09-23 07:26:34

+1

根據上面的鏈接,我找到了另一種方法來做到這一點。我會編輯你的答案:) – DominikAngerer 2014-09-23 08:09:27

3

我生成使用eclipse的嚮導我的客戶,所以我解決我的問題擴展方法對我的服務定位器

@Override 
public Call createCall() throws ServiceException { 
    _call = new org.apache.axis.client.Call(this) { 

     @Override 
     public void setRequestMessage(Message msg) { 
      super.setRequestMessage(msg); 

      MimeHeaders mimeHeaders = msg.getMimeHeaders(); 
      mimeHeaders.addHeader("SessionID", SessionID); 


     } 

    }; 

    return _call; 
}