报错栈信息: java.lang.NoSuchMethodError: com.alibaba.fastjson.serializer.JavaBeanSerializer.processValue(Lcom/alibaba/fastjson/serializer/JSONSerializer;Lcom/alibaba/fastjson/serializer/BeanContext;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;Ljava/lang/Integer; at com.alibaba.fastjson.serializer.ASMSerializer_12_XXX.writeNormal(Unknown Source) ~[?:?] at com.alibaba.fastjson.serializer.ASMSerializer_12_XXX.write(Unknown Source) ~[?:?] at com.alibaba.fastjson.serializer.JSONSerializer.write(JSONSerializer.java:285) ~[fastjson-1.2.61.jar:?] at com.alibaba.fastjson.JSON.toJSONString(JSON.java:663) ~[fastjson-1.2.61.jar:?] at com.alibaba.fastjson.JSON.toJSONString(JSON.java:652) ~[fastjson-1.2.61.jar:?] 。。。。。。
[alibaba/fastjson]1.2.61不兼容1.2.60以前的方法JavaBeanSerializer.processValue
回答
这个问题,什么时候能修复呢?
1.2.62中依旧存在这个问题
java.lang.NoSuchMethodError: com.alibaba.fastjson.serializer.JavaBeanSerializer.processValue(Lcom/alibaba/fastjson/serializer/JSONSerializer;Lcom/alibaba/fastjson/serializer/BeanContext;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;Ljava/lang/Integer; at com.alibaba.fastjson.serializer.ASMSerializer_2_SysAuthority.writeNormal(Unknown Source) ~[na:na] at com.alibaba.fastjson.serializer.ASMSerializer_2_SysAuthority.write(Unknown Source) ~[na:na] at com.alibaba.fastjson.serializer.ListSerializer.write(ListSerializer.java:135) ~[fastjson-1.2.62.jar:na] at com.alibaba.fastjson.serializer.JSONSerializer.write(JSONSerializer.java:285) ~[fastjson-1.2.62.jar:na] at com.alibaba.fastjson.JSON.toJSONString(JSON.java:663) ~[fastjson-1.2.62.jar:na] at com.alibaba.fastjson.JSON.toJSONString(JSON.java:652) ~[fastjson-1.2.62.jar:na]
1.2.62中依旧存在这个问题 确实 59都没有这个问题
有没有其他替换方法。。
@Override
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
SerializeWriter out = serializer.out;
if(object==null){
out.writeString("");
}
//过滤不需要的字段
/* PropertyFilter filter = (source, name, value) -> {
if("id".equals(name)||"mchId".equals(name)|| "mchName".equals(name)){
return true;
}
return false;
};*/
PropertyPreFilter filter=(source, value, name) -> {
if("id".equals(name)||"mchId".equals(name)|| "mchName".equals(name)){
return true;
}
return false;
};
out.write(JSON.toJSONString(object,filter));
}
因为自定义过滤这块使用,导致出现这个问题
2019-10-27 16:03:53.213 ERROR 50523 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: com.alibaba.fastjson.serializer.JavaBeanSerializer.processValue(Lcom/alibaba/fastjson/serializer/JSONSerializer;Lcom/alibaba/fastjson/serializer/BeanContext;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;Ljava/lang/Integer;] with root cause
java.lang.NoSuchMethodError: com.alibaba.fastjson.serializer.JavaBeanSerializer.processValue(Lcom/alibaba/fastjson/serializer/JSONSerializer;Lcom/alibaba/fastjson/serializer/BeanContext;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;Ljava/lang/Integer; at com.alibaba.fastjson.serializer.ASMSerializer_1_DefaultResult.writeNormal(Unknown Source) ~[na:na] at com.alibaba.fastjson.serializer.ASMSerializer_1_DefaultResult.write(Unknown Source) ~[na:na] at com.alibaba.fastjson.serializer.JSONSerializer.write(JSONSerializer.java:285) ~[fastjson-1.2.61.jar:na] at com.alibaba.fastjson.support.spring.MappingFastJsonValue.write(MappingFastJsonValue.java:77) ~[fastjson-1.2.61.jar:na] at com.alibaba.fastjson.serializer.JSONSerializableSerializer.write(JSONSerializableSerializer.java:34) ~[fastjson-1.2.61.jar:na] at com.alibaba.fastjson.serializer.JSONSerializer.write(JSONSerializer.java:285) ~[fastjson-1.2.61.jar:na] at com.alibaba.fastjson.JSON.writeJSONString(JSON.java:942) ~[fastjson-1.2.61.jar:na] at com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter.writeInternal(FastJsonHttpMessageConverter.java:312) ~[fastjson-1.2.61.jar:na] at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:227) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] at com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter.write(FastJsonHttpMessageConverter.java:244) ~[fastjson-1.2.61.jar:na] at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:290) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:180) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:82) ~[spring-web-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:122) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1039) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) ~[tomcat-embed-core-9.0.24.jar:9.0.24] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882) ~[spring-webmvc-5.1.9.RELEASE.jar:5.1.9.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) ~[tomcat-embed-core-9.0.24.jar:9.0.24]
现在1.27版本解决了这个问题吗