一個很簡單的調用接口注冊一個用戶到系統中,但死活成功不了。找了網上好多種解決方法,感覺都比較麻煩,這是我自己測試很多次后發現的解決方法。
is not a type supported by this encoder.報錯內容如下所示
message:[class com.azxc.func.system.user.entity.User is not a type supported by this encoder.]
調用示例
/**
* User Feign接口類
*
*
*/
@FeignClient(
value = AppConstant.APPLICATION_USER_NAME
)
public interface IUserClient {
String API_PREFIX = "/client";
String SAVE_USER = API_PREFIX + "/save-user";
/**
* 新建用戶
*
* @param user 用戶實體
* @return
*/
@PostMapping(SAVE_USER)
R<Boolean> saveUser(@Response User user);
}
/**
* 用戶服務Feign實現類
*
*
*/
@NonDS
@RestController
@AllArgsConstructor
@Api(value = "用戶服務接口")
public class UserClient implements IUserClient {
@Override
@PostMapping(SAVE_USER)
public R<Boolean> saveUser(@Response User user) {
return R.data(service.submit(user));
}
}
/**
* 調用方法創建用戶
*/
public R save(@Valid @RequestBody EmployeeInfo employeeInfo) {
User user = new User();
user.setTenantId("000000");
user.setAccount(employeeInfo.getPhone());
user.setPassword(employeeInfo.getPhone());
user.setName(employeeInfo.getName());
user.setRealName(employeeInfo.getName());
user.setBirthday(new Date());
user.setSex(employeeInfo.getSex());
user.setIsDeleted(0);
user.setUserType(2);
user.setRoleId("1511242157409767425");
user.setDeptId("1375275067666571266");
userClient.saveUser(user);
}
解決方案、把@PostMapping 改成 @RequestMapping 並去掉@Respons注解
@FeignClient(
value = AppConstant.APPLICATION_USER_NAME
)
public interface IUserClient {
String API_PREFIX = "/client";
String SAVE_USER = API_PREFIX + "/save-user";
/**
* 新建用戶
*
* @param user 用戶實體
* @return
*/
@RequestMapping(SAVE_USER)
R<Boolean> saveUser(User user);
}