bubbo調用Failed to invoke remote method異常解決


bubbo調用服務異常:

com.alibaba.dubbo.rpc.RpcException: Failed to invoke remote method: getPlanFlowInfo, provider: dubbo://10.20.30.164:21331/com.ys.mqpms.api.IMqPmsApi?application=ysportal-server&default.check=false&default.timeout=300000&dubbo=2.5.3&interface=com.ys.mqpms.api.IMqPmsApi&methods=.....................

       at com.alibaba.dubbo.rpc.protocol.dubbo.DubboInvoker.doInvoke(DubboInvoker.java:101)

       at com.alibaba.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:144)

         ........................................................

       at java.lang.Thread.run(Thread.java:745)

Caused by: com.alibaba.dubbo.remoting.RemotingException: message can not send, because channel is closed . url:dubbo://10.20.30.164:21331/com.ys.mqpms.api.IMqPmsApi?application=ysportal-server&codec=dubbo&default.check=false&default.timeout=300000&dubbo=2.5.3&heartbeat=60000&interface=com.ys.mqpms.api.IMqPmsApi&methods=......................................

       at com.alibaba.dubbo.remoting.transport.AbstractClient.send(AbstractClient.java:268)

       at com.alibaba.dubbo.remoting.transport.AbstractPeer.send(AbstractPeer.java:51)

       at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeChannel.request(HeaderExchangeChannel.java:112)

       at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeClient.request(HeaderExchangeClient.java:91)

       at com.alibaba.dubbo.rpc.protocol.dubbo.ReferenceCountExchangeClient.request(ReferenceCountExchangeClient.java:81)

       at com.alibaba.dubbo.rpc.protocol.dubbo.DubboInvoker.doInvoke(DubboInvoker.java:96)

       ... 74 more

 

原因分析

message can not send, because channel is closed   遠程方法調用失敗,提示通道被關閉,無法發送信息

打開dubbo的管理頁面:出現此異常是,對應下圖服務應該是不存在的.(下圖是服務已經提供出去后正確的顯示)

 

1. 檢查服務提供的配置文件是否正確,配置文件是否加載

dubbo_provider.xml  提供服務的文件

              <dubbo:service interface="com.ys.xxxx.xxxx.xxxx" ref="xxxxImpl"   version="1.0" />

bean.xml  加載 dubbo_provider.xml  配置文件

                <import resource="classpath*:/dubbo_provider.xml" />

2.檢查客戶端、服務端的超時配置;如果超時時間沒有設置,設置為一個較長時間,就可以了

    <dubbo:consumer check="false" timeout="300000" />
    <dubbo:provider timeout="300000" />

3.檢查你調用服務所在機器ip地址與你調用端配置的ip地址端口是否一致,如下紅色url地址

dubbo_customer.xml  調用服務的配置

   <dubbo:reference id="xxxx" interface="com.ys.xxxx.xxx.xxxxApi" url="dubbo://10.20.30.164:21331" version="1.0"  />

4.檢查發布服務的項目是否啟動正常,發布服務的項目沒有正常啟動也會出現此問題

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM