1. 報錯
這種錯誤在同一dubbo端口下個多個相同服務中是很難發現錯誤具體資訊的,報錯雖然也是
fail invoke method
但是沒有詳細資訊(你靠猜是猜不出來哪裡出問題的),是以最好暫時關閉其它服務,或者申請不同的dubbo端口測試,讓錯誤更準确的暴露出來。
1.1 Post請求報錯:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuYWN1YmMhhzY3EDOjRTN4ADZmljNmRmMyITY3QWZjVmNfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
1.2 控制台報錯:
java.lang.IllegalStateException:
Serialized class org.springframework.web.multipart.support
.StandardMultipartHttpServletRequest must implement java.io.Serializable
2. 原因
查找了一下這個類發現它确實是沒有序列化
public class StandardMultipartHttpServletRequest extends AbstractMultipartHttpServletRequest {...}
3. 解決辦法
之是以報這個錯是因為我在web層将HttpServletRequest進行傳值到注冊的服務:
是以解決方法也很簡單:
- 将整個業務處理都寫在web服務中。(不規範)
- 将有用資訊提取,轉換成可序列化的類型。
其實在HttpServletRequest中對我有用的資訊是擷取到容器的一個路徑,是以将其提取,并修改傳參。
大功告成。