zoukankan      html  css  js  c++  java
  • 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"));  

  • 相关阅读:
    Linux IO接口 监控 (iostat)
    linux 防火墙 命令
    _CommandPtr 添加参数 0xC0000005: Access violation writing location 0xcccccccc 错误
    Visual Studio自动关闭
    Linux vsftpd 安装 配置
    linux 挂载外部存储设备 (mount)
    myeclipse 9.0 激活 for win7 redhat mac 亲测
    英文操作系统 Myeclipse Console 乱码问题
    Linux 基本操作命令
    linux 查看系统相关 命令
  • 原文地址:https://www.cnblogs.com/sdream/p/5887829.html
Copyright © 2011-2022 走看看