Dubbo: Failed to check the status of the service . No provider available for the service

本文记录了一次在Tomcat上部署Dubbo provider和consumer遇到的问题及解决过程。启动consumer时出现错误,提示找不到provider服务。问题根源在于配置文件中使用的内网IP而非公网IP。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考链接: http://blog.youkuaiyun.com/xlgen157387/article/details/52702659

分别将dubbo的provider和consumer部署到tomcat上面,先启动provider,启动成功,再启动consumer,报如下错误:

java.lang.IllegalStateException: Failed to check the status of the service com.unj.dubbotest.provider.DemoService. No provider available for the service com.unj.dubbotest.provider.DemoService from the url zookeeper

详细错误如下:

ype Exception report

message org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'demoService': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: Failed to check the status of the service com.unj.dubbotest.provider.DemoService. No provider available for the service com.unj.dubbotest.provider.DemoService from the url zookeeper://10.0.3.42:2181/com.alibaba.dubbo.registry.RegistryService?anyhost=true&application=hehe_consumer&check=false&default.timeout=30000&dubbo=2.5.4&generic=false&interface=com.unj.dubbotest.provider.DemoService&methods=getStr,sayHello,getUsers&pid=2821&side=consumer&timestamp=1514020985135 to the consumer 0.0.23.54 use dubbo version 2.5.4

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'demoService': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: Failed to check the status of the service com.unj.dubbotest.provider.DemoService. No provider available for the service com.unj.dubbotest.provider.DemoService from the url zookeeper://10.0.3.42:2181/com.alibaba.dubbo.registry.RegistryService?anyhost=true&application=hehe_consumer&check=false&default.timeout=30000&dubbo=2.5.4&generic=false&interface=com.unj.dubbotest.provider.DemoService&methods=getStr,sayHello,getUsers&pid=2821&side=consumer&timestamp=1514020985135 to the consumer 0.0.23.54 use dubbo version 2.5.4
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:561)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'demoService': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: Failed to check the status of the service com.unj.dubbotest.provider.DemoService. No provider available for the service com.unj.dubbotest.provider.DemoService from the url zookeeper://10.0.3.42:2181/com.alibaba.dubbo.registry.RegistryService?anyhost=true&application=hehe_consumer&check=false&default.timeout=30000&dubbo=2.5.4&generic=false&interface=com.unj.dubbotest.provider.DemoService&methods=getStr,sayHello,getUsers&pid=2821&side=consumer&timestamp=1514020985135 to the consumer 0.0.23.54 use dubbo version 2.5.4
    org.springframework.beans.factory.support.FactoryBeanRegistrySupport$1.run(FactoryBeanRegistrySupport.java:127)
    java.security.AccessController.doPrivileged(Native Method)
    org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:116)
    org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:91)
    org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1288)
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:217)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
    org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:880)
    com.alibaba.dubbo.demo.pp.Consumer.getName(Consumer.java:52)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:131)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

java.lang.IllegalStateException: Failed to check the status of the service com.unj.dubbotest.provider.DemoService. No provider available for the service com.unj.dubbotest.provider.DemoService from the url zookeeper://10.0.3.42:2181/com.alibaba.dubbo.registry.RegistryService?anyhost=true&application=hehe_consumer&check=false&default.timeout=30000&dubbo=2.5.4&generic=false&interface=com.unj.dubbotest.provider.DemoService&methods=getStr,sayHello,getUsers&pid=2821&side=consumer&timestamp=1514020985135 to the consumer 0.0.23.54 use dubbo version 2.5.4
    com.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:407)
    com.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:320)
    com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:159)
    com.alibaba.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:65)
    org.springframework.beans.factory.support.FactoryBeanRegistrySupport$1.run(FactoryBeanRegistrySupport.java:121)
    java.security.AccessController.doPrivileged(Native Method)
    org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:116)
    org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:91)
    org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1288)
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:217)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
    org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:880)
    com.alibaba.dubbo.demo.pp.Consumer.getName(Consumer.java:52)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:131)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.73 logs.

问题原因是: 机名都指向了内网IP

解决方案是: 因此需要将他们改回具体的公网IP地址,或者直接删除

#1.2.3.4  5941
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值