webservice client setTimeOut

來源:互聯網
上載者:User

標籤:

一:eclipse產生的client,基於axis

client_sub.getOptions().setTimeOutInMilliSeconds(1000*60);

client_sub表示一個用戶端上的存根對象。

如:org.apache.axis.client.Call _call=createCall();

 

二:基於XFire

Service model = new ObjectServiceFactory().create(TaskService.class);  

XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());  

TaskService service = (TaskService) factory.create(model, url);  

Client client =Client.getInstance(service);  

client.setTimeout(10000);  

client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, String.valueOf(10000));  

client.setProperty(CommonsHttpMessageSender.DISABLE_KEEP_ALIVE, "true");  

client.setProperty(CommonsHttpMessageSender.DISABLE_EXPECT_CONTINUE, "true");  

 

//另一種

  SimpleServiceServiceClient serviceClient= new SimpleServiceServiceClient();  

        SimpleService  servicePort = serviceClient.getSimpleServicePort();  

        HttpClientParams params = new HttpClientParams();  

        params.setParameter(HttpClientParams.USE_EXPECT_CONTINUE, Boolean.FALSE);  

// set connection timeout  

        params.setParameter(HttpClientParams.CONNECTION_MANAGER_TIMEOUT, 2L);  

//set response timeout   

        params.setIntParameter(HttpClientParams.SO_TIMEOUT,2);  

        Client client = Client.getInstance(servicePort);  

        client.setProperty(CommonsHttpMessageSender.HTTP_CLIENT_PARAMS, params);  

        System.out.println(servicePort.concatenate("xfire1", "xfire2"));  

 

三:基於CXF

    //1,在CXF產生的stub的用戶端,方式如下(CXF2.1.1):  

  //其中SimpleServiceService是自動產生的stub類.  

        SimpleServiceService srv = new SimpleServiceService();  

        SimpleService servicePort = srv.getSimpleServicePort();  

    //timeout setting  

        Client cl = ClientProxy.getClient(servicePort);  

        HTTPConduit http = (HTTPConduit) cl.getConduit();  

        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();  

        httpClientPolicy.setConnectionTimeout(10000);  

        httpClientPolicy.setReceiveTimeout(1000);  

        http.setClient(httpClientPolicy);  

        servicePort.concatenate("111", "2222");  

 

四:jax-ws

  //3,jax-ws的用戶端:同樣利用CXF的ClientProxy控制http串連:  

        URL wsdlURL = new URL("file:///D:/JAVAWorkspace/Repository/prjCXFWS/src/wsdl/prjCXFWS.wsdl");  

        QName serviceQName = new QName("http://test.cxfws.com/", "SimpleServiceService");  

        QName portQName = new QName("http://test.cxfws.com/", "SimpleServicePort");  

        Service service = Service.create(wsdlURL, serviceQName);  

  //set handler   

      service.setHandlerResolver(new RequestOrderHandlerResolver());                    SimpleService port = (SimpleService) service.getPort(portQName, SimpleService.class);  

  //timeout setting  

        Client cl = ClientProxy.getClient(port);  

        HTTPConduit http = (HTTPConduit) cl.getConduit();  

        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();  

        httpClientPolicy.setConnectionTimeout(10000);  

        httpClientPolicy.setReceiveTimeout(1000);  

        http.setClient(httpClientPolicy);  

        System.out.println(port.concatenate("srt1", "srt2"));  

webservice client setTimeOut

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.