背景:一個應用使用dubbo,自己提供的服務,自己去調。(不要問我干嘛通過dubbo去掉自己的服務)實踐一:啟動一個spring容器,加載dubbo容器,注冊并使用dubbo服務。啟動容器ClassPathXmlApplicationContextcontext=newClassPathXmlApplicationContext(newString[]{"classpath:provider.xml"});context.start();HiDubboFacadeo1=(HiDubboFacade)context.getBean("hiDubboFacade");Strings1=o1.hi("xxt11111");System.out.println(s1);System.out.println("reference1hashcode:"+o1.hashCode());HiDubboFacadeo2=(HiDubboFacade)context.getBean("helloDubbo");Strings2=o2.hi("xxt");System.out.println(s2);System.out.println("reference2hashcode:"+o2.hashCode());沒有問題:ireceivedmsg:xxt11111reference1hashcode:352598575[2017-07-2016:27:59.659][main][INFO][c.a.dubbo.config.AbstractConfig]-[DUBBO]Usinginjvmservicecom.coder4j.job.facade.HiDubboFacade,dubboversion:2.5.3,currenthost:127.0.0.1[2017-07-2016:27:59.659][main][INFO][c.a.dubbo.config.AbstractConfig]-[DUBBO]Referdubboservicecom.coder4j.job.facade.HiDubboFacadefromurlinjvm://127.0.0.1/com.coder4j.job.facade.HiDubboFacade?application=app&dubbo=2.5.3&interface=com.coder4j.job.facade.HiDubboFacade&methods=hi&pid=11220&side=consumer×tamp=1500539279654,dubboversion:2.5.3,currenthost:127.0.0.1ireceivedmsg:xxtreferencehashcode:1873091796實踐二:使用相同的配置,在web應用中啟動,就拿不到helloDubbo,報錯。Causedby:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'helloDubbo':FactoryBeanthrewexceptiononobjectcreation;nestedexceptionisjava.lang.IllegalStateException:Failedtocheckthestatusoftheservicecom.coder4j.job.facade.HiDubboFacade.Noprovideravailablefortheservicecom.coder4j.job.facade.HiDubboFacadefromtheurlregistry://127.0.0.1:2181/com.alibaba.dubbo.registry.RegistryService?application=app&cluster=available&dubbo=2.5.3&pid=13008&refer=application%3Dapp%26dubbo%3D2.5.3%26interface%3Dcom.coder4j.job.facade.HiDubboFacade%26methods%3Dtell%2Chello%26pid%3D13008%26revision%3D1.0.0%26side%3Dconsumer%26timestamp%3D1500532931746®istry=zookeeper×tamp=1500532931788totheconsumer192.168.23.144usedubboversion2.5.3atorg.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:175)atorg.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103)atorg.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1634)atorg.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:254)atorg.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)atorg.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1081)atcom.coder4j.job.integration.MyIntegration.setApplicationContext(MyIntegration.java:61)atorg.springframework.context.support.ApplicationContextAwareProcessor.invokeAwareInterfaces(ApplicationContextAwareProcessor.java:121)atorg.springframework.context.support.ApplicationContextAwareProcessor.postProcessBeforeInitialization(ApplicationContextAwareProcessor.java:97)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:409)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1620)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)...20moreCausedby:java.lang.IllegalStateException:Failedtocheckthestatusoftheservicecom.coder4j.job.facade.HiDubboFacade.Noprovideravailablefortheservicecom.coder4j.job.facade.HiDubboFacadefromtheurlregistry://127.0.0.1:2181/com.alibaba.dubbo.registry.RegistryService?application=app&cluster=available&dubbo=2.5.3&pid=13008&refer=application%3Dapp%26dubbo%3D2.5.3%26interface%3Dcom.coder4j.job.facade.HiDubboFacade%26methods%3Dtell%2Chello%26pid%3D13008%26revision%3D1.0.0%26side%3Dconsumer%26timestamp%3D1500532931746®istry=zookeeper×tamp=1500532931788totheconsumer192.168.23.144usedubboversion2.5.3atcom.alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:420)atcom.alibaba.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:300)atcom.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:138)atcom.alibaba.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:65)atorg.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168)...31more實踐三:如果我單獨啟動一個springjava容器,將服務注冊到zookeeper,再啟動一個web應用是可以拿到java容器發布的服務的。請問,在web應用中,自己發布的服務,自己不能夠消費嘛????
dubbo應用自產自消報錯?
瀟瀟雨雨
2019-05-25 14:04:59