• webservice client setTimeOut


    一: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"));  

  • 相关阅读:
    awk-使用
    缓存使用
    一致性hash-java实现treemap版
    线程同步-CountDownLatch
    一致性hash算法
    linux-配置字符串-grep
    linux-查找命令-find
    linux-网络监控命令-netstat进阶
    linux-网络监控命令-netstat初级
    linux-单引号、双引号、反引号的区别。
  • 原文地址:https://www.cnblogs.com/sdream/p/5887829.html
Copyright © 2020-2023  润新知