次のスタートアップの効果を確認します。
(1)ダボのデフォルトのチェックはサービスに依存して起動時に利用可能である、それは例外がスローされます、デフォルトでは、早期に問題をオンラインを識別することができたときにように、春の初期化が完了し停止し、利用できません check="true"
。
(2)により、 check="false"
厳重な検査、例えば、テストするときに、起動する場合の当事者がなければならない、いくつかのサービスは気にしない、または依存のサイクルがあります
あなたが怠惰なSpringコンテナは、それ以外のサービスは、例外がスローされたときに一時的に利用できない、チェックをオフにし、ロードされた、または遅延APIプログラミングサービスによって引用されている場合場合(3)、null参照を取得し check="false"
、常に参照を返し、ときサービスが復元されたときに自動的に接続します。
一例として、前のポストプロジェクトを使用します:
以下のように、オーダー・サービス・コンシューマー・プロジェクト:直接サービスの消費者を開始」
次のように特定のエラーメッセージは、次のとおりです。Noプロバイダのヒントません
1つのスレッドの例外は、「メイン」org.springframework.beans.factory.UnsatisfiedDependencyException:名前の「orderServiceImpl」豆作成エラー:不満依存フィールド「UserServiceの」を介して表現しました。「UserServiceの」名前を持つBeanを作成エラー:ネストされた例外はorg.springframework.beans.factory.BeanCreationExceptionあるFactoryBeanのは、オブジェクトの作成に例外を投げました。ネストされた例外はjava.lang.IllegalStateExceptionです:サービスcom.lch.test.service.UserServiceの状態を確認できませんでした。利用できませんプロバイダのための URLの飼育係からサービスcom.lch.test.service.UserService://127.0.0.1:2181/com.alibaba.dubbo.registry.RegistryService?anyhost=true&application=order-service-consumer&check=false&dubbo=2.6.2&generic=false&interface=com.lch.test.service.UserService&methods=getUserAddressList&pid=8740®ister.ip= 192.168.0.110&remote.timestamp = 1563206416952&側面=コンシューマ&消費者192.168.0.110使用ダボバージョン2.6.2にタイムスタンプ= 1563370847797 2 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588で) 3 でorg.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88 ) 4 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366で) 5 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1268で) 6 org.springframework.beansで.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553 ) 7 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483で) 8 org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:312で) 9 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingletonで(DefaultSingletonBeanRegistry.java:230 ) 10 org.springframeworkで。 beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308 ) 11 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197で) 12 org.springframework.beans.factory.supportました。 DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761 ) 13 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867で) 14 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543で) 15 org.springframework.context.support.ClassPathXmlApplicationContextで<初期化>(ClassPathXmlApplicationContext.java:139 ) 16 org.springframework.context.support.ClassPathXmlApplicationContextで<初期化>(ClassPathXmlApplicationContext.java:83 ) 17 com.lch.test.MainApplication.mainで(MainApplication.java:12 ) 18org.springframework.beans.factory.BeanCreationException:に起因する誤差の名前でBeanを作成する「UserServiceの」:FactoryBeanのは、オブジェクトの作成時に例外がスローされました。ネストされた例外はjava.lang.IllegalStateExceptionです:サービスcom.lch.test.service.UserServiceの状態を確認できませんでした。利用できませんプロバイダのための URLの飼育係からサービスcom.lch.test.service.UserService:// 127.0.0.1:2181/com.alibaba.dubbo.registry.RegistryService?anyhost=true&application=order-service-consumer&check=false&dubbo= 2.6.2&= com.lch.test.service.UserService&偽=ジェネリック・インタフェースメソッド= getUserAddressList&PID = 8740&register.ip = 192.168.0.110&remote.timestamp = 1563206416952&側面=消費者&タイムスタンプ=消費者192.168.0.110使用ダボバージョン2.6から1563370847797。 org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:177で) 20 org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103で) 21 org.springframework.beansで.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1640 ) 22 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:254で) 23 org.springframework.beans.factory.support.AbstractBeanFactoryで.getBean(AbstractBeanFactory.java:202 ) 24 org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208で) 25 org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:1316で) 26 org.springframework.beansで.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1282 ) 27 org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1101で) 28 org.springframework.beans.factory.support.DefaultListableBeanFactoryで.resolveDependency(DefaultListableBeanFactory.java:1066 ) 29 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585で) 30 ... 15 以上 31java.lang.IllegalStateException:によって引き起こされるサービスcom.lch.test.service.UserServiceの状態を確認できませんでした。URLの飼育係からサービスcom.lch.test.service.UserServiceに利用可能なプロバイダん://127.0.0.1:?2181 / com.alibaba.dubbo.registry.RegistryService ANYHOST =真&アプリケーション=オーダーサービス-コンシューマー&偽&ダボ= =チェック2.6.2&ジェネリック= FALSE&インタフェース= com.lch.test.service.UserService&メソッド= getUserAddressList&PID = 8740&register.ip = 192.168.0.110&remote.timestamp = 1563206416952&側面=消費者&タイムスタンプ= 1563370847797消費者192.168.0.110使用ダボバージョン2.6.2に 32 COMました。 alibaba.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:422) 33 com.alibaba.dubbo.config.ReferenceConfig.initで(ReferenceConfig.java:34 com.alibaba.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:163で) 35 com.alibaba.dubbo.config.spring.ReferenceBean.getObject(ReferenceBean.java:66で) 36 org.springframework.beansました。 factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:170 ) 37 ... 25以上
これはチェックが起動するように設定されていない場合、ダボが行われ、デフォルトの起動チェックである、ので、あなたが消費者サービスを開始したときには、ある、サービス・プロバイダーをチェックアップ開始していません。
チェック=「false」を持つ内部のdubboLreferenceラベルで、設定ファイルを変更します。
1の<?xml version = "1.0"エンコード= "UTF-8"?> 2 <豆のxmlns = "http://www.springframework.org/schema/beans" 3つ のxmlns:XSI = "のhttp:// WWW。 w3.org/2001/XMLSchema-instance」 4つ のxmlns:ダボ= "http://dubbo.apache.org/schema/dubbo" 5 のxmlns:コンテキスト= "http://www.springframework.org/schema/context" 6 XSI:のschemaLocation = "http://www.springframework.org/schema/beans 7 のhttp:// www.springframework.org/schema/beans/spring-beans-4.3.xsd 8 のhttp:// dubbo.apache。 ORG /スキーマ/ダボ 9 のhttp://dubbo.apache.org/schema/dubbo/dubbo.xsd 10 HTTP:// www.springframework.org/schema/context 11 HTTP:// www.springframework.org/schema/context/spring-context.xsd「> 12 13 < - -スキャンパッケージ注釈!> 14 <コンテキスト:コンポーネント- スキャン 15 ベース- パッケージ = "com.lch.test.service.impl" /> 16 。17 < - 1コンシューマ・アプリケーション名- ! > 18は、 ダボ<:ファイルアプリケーション名= "注文---サービスコンシューマー" /> 。19 20れる <! - 2.センターを指定するレジスタに対処- > 21である <ダボ:レジストリアドレス=「のZooKeeper://127.0.0.1: 2181" /> 22 23 < -リモートサービスエージェントのダボ:!リファレンスを生成:コールするリモートサービス・インターフェース、宣言の必要性- > 24 <! - UserServiceのと呼ばれるサービスを公開するユーザーサービスプロバイダープロジェクトを、ここでは、このサービスを参照するために- > 25 <ダボ:リファレンスID = "そのUserServiceの" 26 = "com.lch.test.service.UserServiceは"インターフェイスである"偽に" =チェック /> 27 28 -接続監視センターは、自動検出を使用:! - < - > 29 <ダボ:モニタープロトコル= "登録" /> 30 <! -直接登録センター- > 31である < - <ダボ:!モニタアドレス= "127.0.0.1:7070" /> - > 32 33は 34である </豆>
そして、消費者向けサービスを開始します。
dubbo启动时检查可以配置三种作用范围,上面例子是仅仅关闭对user-service-provider这个服务提供者的检查,如果要关闭所有服务消费者对 与其对应的服务提供者的检查,
可以在标签 dubbo:consumer 中添加check="false" 即: <dubbo:consumer check="false" />