- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在自动连接来自另一个项目的假客户端时遇到问题。似乎没有生成和注入(inject) feign 客户端的实现。
这是我遇到的错误。
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'passportRestController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException:
Could not autowire field: private com.wstrater.service.contacts.client.ContactService com.wstrater.service.passport.server.controllers.PassportRestController.contactService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type [com.wstrater.service.contacts.client.ContactService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations:
{@org.springframework.beans.factory.annotation.Autowired(required=true)}
假装客户端非常简单。为简洁起见,我删除了导入。
package com.wstrater.service.contacts.client;
@FeignClient("contact-service")
public interface ContactService {
@RequestMapping(method = RequestMethod.GET, value = ContactConstants.CONTACTS_USER_ID_PATH)
public Collection<Contact> contactsByUserId(@PathVariable("userId") String userId);
}
我将组件扫描添加到我的项目中,以包括应用程序及其 Controller ,并将假装客户端包括在另一个项目中。
package com.wstrater.service.passport.server;
@EnableEurekaClient
@EnableFeignClients
@SpringCloudApplication
@ComponentScan({"com.wstrater.service.passport.server",
"com.wstrater.service.contacts.client"})
public class PassportServiceApplication {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(PassportServiceApplication.class, args);
}
}
为简洁起见删除了大部分导入的其余 Controller 。
package com.wstrater.service.passport.server.controllers;
import com.wstrater.service.contacts.client.ContactService;
@RestController
public class PassportRestController {
@Autowired
private ContactService contactService;
@RequestMapping(PassportContstants.PASSPORT_USER_ID_PATH)
public ResponseEntity<Passport> passportByUserId(@PathVariable String userId) {
ResponseEntity<Passport> ret = null;
Collection<Contact> contacts = contactService.contactsByUserId(userId);
if (contacts == null || contacts.isEmpty()) {
ret = new ResponseEntity(HttpStatus.NOT_FOUND);
} else {
ret = ResponseEntity.ok(new Passport(contacts));
}
return ret;
}
}
我曾尝试在不同的项目和不同的包中定义假装客户端接口(interface),并且只有在将它与应用程序放在同一个包中时才看到成功。这让人相信这是一个组件扫描问题,即使我在扫描中包含了包。我想在共享项目中保留假客户端接口(interface)以定义可重用的“契约(Contract)”,并为每个项目都具有独特的包结构,而不是使用使用它的应用程序定义假客户端。
谢谢,韦斯。
最佳答案
您需要告诉 Feign 扫描器在哪里找到接口(interface)。
您可以使用@EnableFeignClients(basePackages = {"my.external.feign.client.package", "my.local.package"})
。
关于java - 从另一个项目注入(inject) FeignClient 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38863828/
我想使用 @FeignClient(url=...) 并使其直接转到给定的 url,而不是从功能区配置中获取主机。 我知道在 spring-cloud 中 feign 默认与ribbon 和 eure
我正在尝试了解 Spring Boot 和 Hystrix,但无法让后备方法发挥作用。我尝试了两种方法,@HystrixCommand 和 @FeignClient。我可以获取 @HystrixCom
我正在尝试在我的 Multi-Tenancy 应用程序中实现假客户端概念。我有两个微服务。在其中一项微服务中,我编写了 API 来从数据库获取数据。我的其他微服务中需要这些数据。为此,我使用假客户端概
我的微服务需要使用双向 ssl。每个微服务都是一个 Spring Boot 应用程序,注释为: @SpringBootApplication @EnableFeignClients @EnableDi
我使用 Spring Cloud Netflix 来构建我的微服务。 @FeignClient(name = "ms-cloud",configuration = MsCloudClientConfi
是否可以通过 MockRestServiceServer(restTemplate) 模拟响应 FeignClient?这个例子不起作用: Application.class @SpringBootA
我在根据文档尝试 feignclient 回退时遇到问题。 假设 myFeignClient 无法连接到 myFeign @FeignClient(name = "myFeign", fallback
服务器使用request.getInputStream()获取请求正文。 客户端代码: @FeignClient(name="composer-agent") public interface Com
Spring Boot FeignClient 捕获业务异常信息 因项目重构采用spring cloud,feign不可避免。目前spring cloud在国内还不是很成熟,所以踩坑是免不了的。最
我在自动连接来自另一个项目的假客户端时遇到问题。似乎没有生成和注入(inject) feign 客户端的实现。 这是我遇到的错误。 org.springframework.beans.factory.
我的应用程序中有一个 @FeignClient: @FeignClient(name="${mongo.service.id}", url="${mongo.service.url}") public
我尝试使用多个查询字符串参数调用 Google API。奇怪的是,我找不到办法做到这一点。 这是我的 FeignClient : @FeignClient(name="googleMatrix", u
Feign 默认扩展器转换参数: final class ToStringExpander implements Expander { @Override public String
我 try catch 从 FeignClient 连接的另一个微服务收到的异常。我制作了自定义的 ErrorDecoder,并且 public class CustomErrorDecoder im
拥有 Feign 客户端: @FeignClient(name = "storeClient", url = "${feign.url}") public interface StoreClient
我有一个@FeignClient接口(interface): @FeignClient(name="${some.service.id}", url="${some.service.url}") pu
这是我的 FeignClient: @FeignClient(name="${mongo.service.id}", url="${mongo.service.url}", configuration
如何在spring的@feignclient配置中设置自定义最大连接池大小, @FeignClient(name = "content-cms", configuration = ContentCms
当我的 Spring Boot 应用程序初始化时,我需要使用 @Component @FeignClient(name = "xxx") 进行 bean 注入(inject),但它总是抛出这样的异常:
我在自动连接另一个项目的 feign 客户端时遇到问题。貌似没有生成和注入(inject)feign客户端的实现。 这是我遇到的错误。 org.springframework.beans.factor
我是一名优秀的程序员,十分优秀!