1. 程式人生 > >CXF 2.0 學習筆記-3 SOAP Header

CXF 2.0 學習筆記-3 SOAP Header

{
        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());

    }