【发布时间】:2020-11-13 14:50:01
【问题描述】:
当我尝试发出具有如下请求正文的 POST 请求(来自邮递员)时,我面临映射异常:
类型定义错误:[简单类型,类org.springframework.expression.spel.support.ReflectiveMethodResolver];嵌套异常是 com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.springframework.expression.spel.support.ReflectiveMethodResolver 并且没有发现创建 BeanSerializer 的属性(为避免异常,禁用 SerializationFeature.FAIL_ON_EMPTY_BEANS)(通过参考链:com.freddiemac.security.policy.Policy["accessPolicies"]->java.util.ArrayList[0]->com.freddiemac.security.policy.AccessPolicy["condition"]->org.springframework.expression .spel.standard.SpelExpression["evaluationContext"]->org.springframework.expression.spel.support.StandardEvaluationContext["methodResolvers"]->java.util.ArrayList[0])
POST 调用 - 请求正文:
{
"accessPolicies": [{
"policyId": 1,
"resource": [
"/my-resource"
],
"action": [
"POST"
],
"condition": "#claims['userRoles'].contains('developer')", // this is mapped as Spring expression in java
"effect": "Allow"
}]
}
POJO 类:
private String policyId;
private List<String> resource;
private List<String> action;
private List<String> role;
private Expression condition; // import from : org.springframework.expression.Expression;
你能帮我解决这个问题吗?提前致谢。
【问题讨论】:
-
你需要一个
serviceId和version和accessPolicies的包装类作为你当前 POJO 的列表来匹配 json 响应。