spring-boot集成dubbo報錯UnsatisfiedDependencyException

最近研究spring-boot,集成dubbo,純java配置方式,單jar文件運行,開發支持熱部署,一個字“快”。

@Bean(name = "companyOrgCodeService")public ReferenceBean companyOrgCodeService() {ReferenceBean ref = new ReferenceBean();ref.setProxy("jdk"); // 不設置會報錯,默認使用javassist做代理ref.setVersion("1.1");// 設置版本ref.setInterface(CompanyOrgCodeService.class);// 設置接口// bean.setId("companyOrgCodeService"); // 設置bean id,和方法名一樣return ref;}

上面的CompanyOrgCodeService是生產者發佈的一個接口,在沒有ref.setProxy("jdk");時,在消費端注入接口老是報錯UnsatisfiedDependencyException “is not visible from class loader”,很長一串的堆棧錯誤信息。很長時間,進行了各種嘗試,直到看dubbo的官方文檔,注意到Proxy有兩種形式jdk/javassist,改成jdk就沒報錯了,和提供者的代理類型一致。

不過這裡對於引用的每個接口配置,都要寫這麼一句,很麻煩,引用有個統一的配置。如下

/*** 引用配置** @return* @author wei.ss*/@Bean@SuppressWarnings("rawtypes")public ReferenceConfig referenceConfig(MonitorConfig monitorConfig) {ReferenceConfig rc = new ReferenceConfig();rc.setProxy("jdk"); // 不設置會報錯,默認使用javassist做代理rc.setMonitor(monitorConfig);return rc;}


分享到:


相關文章: