Ver Fonte

解决紫金保险公司不能报价,请求服务时,异常信息打印报错的问题

jiakai há 4 meses atrás
pai
commit
80088e9742

+ 15 - 2
tenant/insurance/quotation-commons/src/main/java/com/jzg/quotation/commons/component/RequestComponent.java

@@ -492,9 +492,22 @@ public class RequestComponent {
             log.error("WebClient请求失败,状态码: {}, 响应头: {}", e.getStatusCode(), e.getHeaders(), e);
             log.error("WebClient请求失败,状态码: {}, 响应头: {}", e.getStatusCode(), e.getHeaders(), e);
             throw e;
             throw e;
         } catch (Exception e) {
         } catch (Exception e) {
-            // 处理其他异常
+            // 处理其他异常(修复NPE)
             log.error("请求失败", e);
             log.error("请求失败", e);
-            throw new WebClientResponseException(500, "Request failed: " + e.getMessage(), HttpHeaders.EMPTY, e.getMessage().getBytes(StandardCharsets.UTF_8), null);
+
+            // 核心修复:e.getMessage() 可能为 null,必须判空
+            String errorMsg = e.getMessage();
+            if (errorMsg == null) {
+                errorMsg = "网络请求超时或服务端无响应";
+            }
+
+            throw new WebClientResponseException(
+                    500,
+                    "Request failed: " + errorMsg,
+                    HttpHeaders.EMPTY,
+                    errorMsg.getBytes(StandardCharsets.UTF_8),
+                    null
+            );
         }
         }
     }
     }