這是我的Header元素封裝的類
public class AddSoapHeader extends AbstractSoapInterceptor {
public AddSoapHeader() {
super(Phase.WRITE);
}
public void handleMessage(SoapMessage message) throws Fault {
// SoapHeader部分待添加的節點
QName qName = new QName("AuthorizationSoapHeader");
Document doc = DOMUtils.createDocument();
// 驗證用戶名
Element id = doc.createElement("userName");
id.setTextContent("zhou");
// 驗證密碼
Element pwd = doc.createElement("password");
pwd.setTextContent("123456");
//驗證密碼
Element company = doc.createElement("company");
company.setTextContent("880");
Element root = doc.createElementNS("http://tempuri.org/","SoapHeaderMD");
root.appendChild(id);
root.appendChild(pwd);
root.appendChild(company);
// 創建SoapHeader內容
SoapHeader header = new SoapHeader(qName, root);
// 添加SoapHeader內容
List<Header> headers = message.getHeaders();
headers.add(header);
}
}
下面這個是我客戶端
public static void main(String[] args) {
String service_url = "http://192.168.9.91:8012/BaanWebService/StdJournalVoucher.asmx?WSDL";
long st = (new Date()).getTime();
QName SERVICE_NAME = new QName("http://tempuri.org/", "StdJournalVoucher");
URL url = null;
try {
url = new URL(service_url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
StdJournalVoucher service = new StdJournalVoucher(url,SERVICE_NAME);
StdJournalVoucherSoap lnService =(StdJournalVoucherSoap) service.getPort(StdJournalVoucherSoap.class);
String json = "[{ttyp:'F02',leac:'66020103',dim1:'880',dbcr:'1',amth:'10000.25',user:'55135'}]";
System.out.println(json);
Client client= ClientProxy.getClient(lnService);
client.getOutInterceptors().add(new AddSoapHeader());
String reponseText = lnService.iJournalVoucher(json);
System.out.println(reponseText);
long et = (new Date()).getTime();
System.out.println("......use time=" + (et-st));
}
我的問題是我通過client.getOutInterceptors().add(new AddSoapHeader());將Header資訊添加到客戶端的介面通信中,可是服務端接收不到我的Header資訊,請問我該怎樣把我封裝的Header資訊傳遞給服務端,謝謝!請大家多多指點
uj5u.com熱心網友回復:
client.invoke這個方法的作用是什么?引數都是什么含義?
uj5u.com熱心網友回復:
加分,求解!uj5u.com熱心網友回復:
客戶端參考: 服務端參考page2https://www.javatips.net/blog/how-to-add-http-headers-to-a-soap-request-using-cxf?page=3
uj5u.com熱心網友回復:
我和樓主的代碼幾乎是一樣的,但我也獲取不了headers!求問~~uj5u.com熱心網友回復:
樓上解決了嘛?????uj5u.com熱心網友回復:
已經解決了,需要了解如何處理的朋友,請加我QQ:358653471轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/56680.html
標籤:Java EE
上一篇:10、JAVA中while回圈和do...while()回圈區別
下一篇:kafka 啟動報錯,嚴重!!!
