WebService新聞org.apache.cxf.interceptor.Fault:Could not send Messageエラー

2162 ワード

問題の説明
プロジェクトでプログラミングしたところ、WebServiceは正常に結果に戻ることができましたが、その後検索条件を変えて、サービス端末の検索時間が長すぎて、クライアントが投げました。org.apache.cxf.interceptor.Fault:Could not send Messageエラー。
ソリューション
クライアントでタイムアウト時間を延長します。コードは以下の通りです。
        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
        factory.setServiceClass(IEvalService.class);//  WebService  
        factory.setAddress(CoreConst.PATENT_URL);//  WebService  
        factory.getOutInterceptors().add(new          ClientLoginInterceptor(CoreConst.PARENT_USERNAME,CoreConst.PARENT_PASSWORD));
        IEvalService client = (IEvalService)factory.create();//     
        //          ,   .
        Client proxy = ClientProxy.getClient(client);
        HTTPConduit conduit = (HTTPConduit) proxy.getConduit();
        HTTPClientPolicy policy = new HTTPClientPolicy();
        policy.setConnectionTimeout(30000); //      
        policy.setReceiveTimeout(180000);//      .
        conduit.setClient(policy);
        ResultData info = client.loadDataFromSearch(pa,ipc, api_key, sign);//    
以上のように、設定要求のタイムアウト時間は3分で、正常に結果を返すことができます。