WebサービスのAxis2クライアントは、タイムアウト設定を呼び出します

Axis2のバージョン:1.6.2

 

輸入java.rmi.RemoteExceptionの。

輸入nc.pubitf.para.SysInitQuery;
輸入nc.vo.pub.BusinessException;

輸入org.apache.axis2.AxisFault;
輸入org.apache.axis2.client.Options。
輸入org.apache.axis2.transport.http.HTTPConstants。
輸入org.tempuri.HQSWcfServiceCallHQSWcfServiceCallSoapStub。

輸入com.yonyou.yh.nhis.bd.util.SysConfigParamUtil。
輸入com.yonyouhealth.uaph.framework.comm.util.StringUtils。


パブリッククラスChinaShineUtils {

    スタブ静的HQSWcfServiceCallHQSWcfServiceCallSoapStubプライベート;
    プライベート静的HQSWcfServiceCallHQSWcfServiceCallSoapStub getServiceStubは()AxisFault、BusinessException {スロー
        試し{
            ;スタブスタブは、新しい新しいHQSWcfServiceCallHQSWcfServiceCallSoapStub = NULL ==():?スタブ
            
            ...スタブ_getServiceClientオプションオプション=()GETOPTIONS();
            options.setProperty(HTTPConstantsを.CONNECTION_TIMEOUT、* 1000年2); //設定されたサーバーのタイムアウト法(ミリ秒単位)
            options.setProperty(HTTPConstants.SO_TIMEOUT、1000年* 3); //ミリ秒単位で(顧客の接続を待ってタイムアウトを設定)
            
            スタブ。 _getServiceClient()はsetOptions(オプション); //は設定してください。

            
        }キャッチ(AxisFault E){
            スロー新しい新ザ・AxisFault( "アウトインターフェースの呼び出し回数、インターフェースは情報を返します:" + e.getMessage());
        }キャッチ(例外e){
            新しいBusinessExceptionを投げる( "接口调用失败、接口返回信息:" + e.getMessage())。
        }
        戻りスタブ。
    }
    
    プライベート静的HQSWcfServiceCallHQSWcfServiceCallSoapStub getServiceStub(文字列pk_group)はAxisFault、BusinessException {スロー
        {試みるは、
            IF(StringUtils.hasText(pk_group)){
                文字列のURL = SysInitQuery.getParaString(pk_group、 "NHISPV014")。
                もし(StringUtils.hasText(URL)){
                    スタブ= NULL ==スタブ?新しいHQSWcfServiceCallHQSWcfServiceCallSoapStub(URL):スタブ。
                    
                    文字列のconn_timeout_str =新しいSysConfigParamUtil()getPubSysInitByGroup(pk_group、 "NHISPV022")。
                    ?CONNECTION_TIMEOUT整数= StringUtils.hasText(conn_timeout_str)Integer.valueOf(conn_timeout_str):2000;
                    
                    。=文字列so_timeout_str新しい新SysConfigParamUtil()getPubSysInitByGroup(pk_group、 "NHISPV023");
                    ?=整数SO_TIMEOUT StringUtils.hasText(so_timeout_str)Integer.valueOf( so_timeout_str):3000;
                    
                    オプションオプションstub._getServiceClient =()GETOPTIONS();.
                    options.setProperty(HTTPConstants.CONNECTION_TIMEOUT、CONNECTION_TIMEOUT); //ミリ秒単位でサーバータイムアウト法(設定)
                    options.setProperty(HTTPConstants.SO_TIMEOUT、 SO_TIMEOUT); //待ちタイムアウト接続ミリ秒クライアント()
                    
                    stub._getServiceClient()はsetOptions(オプション);. //集合

                }他{
                    = getServiceStubスタブ();
                }
            }他{
                スタブgetServiceStub =();
            }
        }キャッチ(AxisFault E){
            スロー新しい新しいザAxisFault( "インターフェース呼び出しがタイムアウト、インターフェース情報を返す:" + e.getMessage());
        }キャッチ(例外E){
            スロー新しい新BusinessException(「呼び出しは、インタフェースを失敗インターフェイス情報が返され、」+ e.getMessage());
        }
        スタブを返します;
    }

おすすめ

転載: blog.csdn.net/m0_37488170/article/details/93461840