因为返回消息的对象不正确,导致有下面的异常: 15:22:28.669 [task-5] DEBUG c.o.w.o.a.i.o.i.WeChatErrorInterceptor - WeChat Response String - {"errcode":0,"errmsg":"ok"} 15:22:28.672 [task-5] ERROR o.s.a.i.SimpleAsyncUncaughtExceptionHandler - Unexpected exception occurred invoking async method: public void com.northtecom.visatrack.api.service.impl.ChatGPTService.processChatGPTContent(java.lang.String) java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "errcode" (class com.ossez.wechat.common.model.WeChatAccessToken), not marked as ignorable (2 known properties: "expires_in", "access_token"]) at [Source: (okhttp3.ResponseBody$BomAwareReader); line: 1, column: 13] (through reference chain: com.ossez.wechat.common.model.WeChatAccessToken["errcode"]) at io.reactivex.internal.util.ExceptionHelper.wrapOrThrow(ExceptionHelper.java:46) at io.reactivex.internal.observers.BlockingMultiObserver.blockingGet(BlockingMultiObserver.java:93) at io.reactivex.Single.blockingGet(Single.java:2870) at com.ossez.wechat.oa.api.impl.okhttp.WeChatMsgService.sendMessage(WeChatMsgService.java:65) at com.northtecom.visatrack.api.service.impl.WeChatService.sendMessage(WeChatService.java:209) at com.northtecom.visatrack.api.service.impl.ChatGPTService.processChatGPTContent(ChatGPTService.java:94) at com.northtecom.visatrack.api.service.impl.ChatGPTService$$FastClassBySpringCGLIB$$86883789.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:840) Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "errcode" (class com.ossez.wechat.common.model.WeChatAccessToken), not marked as ignorable (2 known properties: "expires_in", "access_token"]) at [Source: (okhttp3.ResponseBody$BomAwareReader); line: 1, column: 13] (through reference chain: com.ossez.wechat.common.model.WeChatAccessToken["errcode"]) at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:61) at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:1127) at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:2036) at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1700) at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1678) at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:320) at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177) at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323) at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:2051) at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1459) at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:33) at retrofit2.converter.jackson.JacksonResponseBodyConverter.convert(JacksonResponseBodyConverter.java:23) at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:243) at retrofit2.OkHttpCall.execute(OkHttpCall.java:204) at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:46) at io.reactivex.Observable.subscribe(Observable.java:12284) at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:35) at io.reactivex.Observable.subscribe(Observable.java:12284) at io.reactivex.internal.operators.observable.ObservableSingleSingle.subscribeActual(Observ 问题和解决 重新定义 WeChatStatus 对象来处理微信消息发送时候的状态返回。 上面是微信官方网站上提供的返回信息,我们的对象需要和上面的返回信息对应。 修改后的日志能解决这个状态的问题。 https://www.ossez.com/t/api/14337