CXF 2.0 學習筆記-3 SOAP Header
阿新 • • 發佈:2019-02-15
{
String webServiceUrl = "http://127.0.0.1:8080/cxfTest/ws/HelloWorld";
String webServiceConTimeout = "60000";
String webServiceRevTimeout = "60000";
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
ArrayList<Interceptor> list = new ArrayList<Interceptor>();
// 新增soap header 資訊
list.add(new AddSoapHeader());
// 新增soap訊息日誌列印
list.add(new org.apache.cxf.interceptor.LoggingOutInterceptor());
factory.setOutInterceptors(list);
factory.setServiceClass(WebServiceSample.class);
factory.setAddress(webServiceUrl);
WebServiceSample service = (WebServiceSample) factory.create();
//超時時間設定
Client clientP = ClientProxy.getClient(service);
HTTPConduit http = (HTTPConduit) clientP.getConduit();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setConnectionTimeout(Integer
.valueOf(webServiceConTimeout));
httpClientPolicy.setReceiveTimeout(Integer
.valueOf(webServiceRevTimeout));
httpClientPolicy.setAllowChunking(false);
http.setClient(httpClientPolicy);
// 通過物件來互動
ReqBean req = new ReqBean();
req.setExp(new JAXBElement<String>(new QName(
"http://bean.cxf.hs", "exp"), String.class,
"<exp>111<exp>"));
req.setSeqId(new JAXBElement<String>(new QName(
"http://bean.cxf.hs", "seqId"), String.class,
"12345678"));
System.out.println(">>>>>>傳送訊息<<<<<<<<<");
RespBean resp = service.action(req);
System.out.println("resp_id:" + resp.getRespId().getValue());
System.out.println("resp_exp:" + resp.getExp().getValue());
}
String webServiceUrl = "http://127.0.0.1:8080/cxfTest/ws/HelloWorld";
String webServiceConTimeout = "60000";
String webServiceRevTimeout = "60000";
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
ArrayList<Interceptor> list = new ArrayList<Interceptor>();
list.add(new AddSoapHeader());
// 新增soap訊息日誌列印
list.add(new org.apache.cxf.interceptor.LoggingOutInterceptor());
factory.setOutInterceptors(list);
factory.setServiceClass(WebServiceSample.class);
factory.setAddress(webServiceUrl);
WebServiceSample service = (WebServiceSample) factory.create();
//超時時間設定
Client clientP = ClientProxy.getClient(service);
HTTPConduit http = (HTTPConduit) clientP.getConduit();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setConnectionTimeout(Integer
.valueOf(webServiceConTimeout));
.valueOf(webServiceRevTimeout));
httpClientPolicy.setAllowChunking(false);
http.setClient(httpClientPolicy);
// 通過物件來互動
ReqBean req = new ReqBean();
req.setExp(new JAXBElement<String>(new QName(
"http://bean.cxf.hs", "exp"), String.class,
"<exp>111<exp>"));
req.setSeqId(new JAXBElement<String>(new QName(
"http://bean.cxf.hs", "seqId"), String.class,
"12345678"));
System.out.println(">>>>>>傳送訊息<<<<<<<<<");
RespBean resp = service.action(req);
System.out.println("resp_id:" + resp.getRespId().getValue());
System.out.println("resp_exp:" + resp.getExp().getValue());
}