前言
小编在Spring Cloud项目中,需要调用一个第三方服务,在调用过程中,遇到了两个问题,在这篇博客中做一个分享。
pom.xml导入第三方服务
一、直接导入第三方服务jar包
<!--培养计划服务-->
<dependency>
<groupId>com.dmsdbj.cloud</groupId>
<artifactId>integral-training-api</artifactId>
<version>0.0.3-SNAPSHOT</version>
</dependency>
二、出现错误页面
三、添加exclusion标签,解决问题
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</exclusion>
</exclusions>
最终导入第三方服务,完整内容:
<dependency>
<groupId>com.dmsdbj.cloud</groupId>
<artifactId>integral-training-api</artifactId>
<version>0.0.3-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</exclusion>
</exclusions>
</dependency>
备注:<exclusion>作用是排除一些不需要同时下载的依赖jar,因为maven引用的library会将library里面引用的jar也一起打包进来, 这样的话免得了会引起相同jar的版本冲突。
项目启动报错
一、报错如图所示
A component required a bean of type 'com.dmsdbj.integral.training.api.facade.TrainingProgramApi'
that could not be found.
二、解决方案,添加扫描包
在spring boot启动的主程序中,加入调用第三方服务的扫描包:com.dmsdbj.integral.training.api
@EnableFeignClients(basePackages = {"com.dmsdbj.activiti.api","com.dmsdbj.integral.training.api"})
完整的主程序代码:
@EnableEurekaClient
@EnableDiscoveryClient
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@MapperScan("com.tfjybj.intern.provider.dao")
@Import(FdfsClientConfig.class)
@EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)
@EnableFeignClients(basePackages = {"com.dmsdbj.activiti.api","com.dmsdbj.integral.training.api"})
public class InternApplication {
public static void main(String[] args) {
SpringApplication.run(InternApplication.class, args);
}
}
小结
通过网上查询解决方案,逐步解决遇到的问题,归根结底是自己对于注解、spring boot框架、maven的使用方面有所欠缺,这些都是基础知识,不断补充吧!
感谢您的访问!