报错信息:
Failed to invoke the method uploadCheckPayments in the service com.dxl.payment.service.payment.ITrepaymentService. Tried 3 times of the providers
解释:
uploadCheckPayments 方法的参数传递错误。ITrepaymentService此接口尝试了3次请求
一般此问题是参数传递错误
想要调用dubbo项目的方法,传递的参数必须实例化
一、如果你传递的是实体对象,那么实体实现序列化 implements Serializable
如下
package com.dxl.payment.model.payment; import com.dxl.payment.model.common.BasePojo; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import java.io.Serializable; @Table(name="t_autocheck_template") public class AutoCheckTemplate extends BasePojo implements Serializable{ @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Integer id;// private String bankcode;// private String bankname; private String biztype;// private String bizname; private Integer colno;// private String template;// private String templatename;// public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getBankcode() { return bankcode; } public void setBankcode(String bankcode) { this.bankcode = bankcode; } public String getBiztype() { return biztype; } public void setBiztype(String biztype) { this.biztype = biztype; } public Integer getColno() { return colno; } public void setColno(Integer colno) { this.colno = colno; } public String getTemplate() { return template; } public void setTemplate(String template) { this.template = template; } public String getTemplatename() { return templatename; } public void setTemplatename(String templatename) { this.templatename = templatename; } public String getBankname() { return bankname; } public void setBankname(String bankname) { this.bankname = bankname; } public String getBizname() { return bizname; } public void setBizname(String bizname) { this.bizname = bizname; } }
二、java中的基本类型都是已经实现序列化的,例如Integer ,String,int,等类型的参数不会报此错误
三、要传递list和map类型的参数,
List对象中实现序列化的是ArrayList 用ArrayList的参数可以但是其中的泛型<T> T是基本类型的
如果是这种
List<MultipartFile> files = new ArrayList<>();
此list就不能被序列化 传递这种参数给dubbo的接口会报参数无法被序列化的错误
四、一般不能被序列化的有。
HttpServletRequest request
HttpSession session
MultipartFile
等
此处仅仅记录我在项目中遇到的问题。