Springcloud 之feign调用踩坑

@RestController
@RequestMapping("/ykt")
public class YktController {
@PostMapping("/queryPermissionByCardNumber/{cardNumber}")
	public String queryPermissionByCardNumber(@PathVariable(value = "cardNumber") String cardNumber) {
		return yktService.queryPermissionByCardNumber(cardNumber);
	}

@PostMapping("/openDoor/{channelList}")
	public String openDoor(@PathVariable(value = "channelList") List channelList) {
		closeDoor(channelList);
		List newList = new ArrayList<>();
		for (String str : channelList) {
			newList.add(str.replace("-", "$"));
		}
		return yktService.openDoor(newList);
	}
}

服务提供者

@SuppressWarnings("ALL")
@FeignClient(value = "device", fallback = ScheduleDeviceServiceHys.class)
public interface ScheduleDeviceService {
@PostMapping("/ykt/queryPermissionByCardNumber/{cardNumber}")
	public String queryPermissionByCardNumber(@PathVariable(value = "cardNumber") String cardNumber);


@PostMapping("/ykt/openDoor/{channelList}")
	public String openDoor(@PathVariable(value = "channelList") List channelList);
}

服务消费者

服务消费者接口必须和提供者接口完全相同(其中注解最好不用@RequestMapping)最好明确用@PostMapping或者@GetMapping
另外携带参数时接口中@PathVariable后面须指定value的值,不然会报错

你可能感兴趣的:(springcloud)