dubbo常见报错:Failed to invoke the method in the service Tried 3 times of the providers的解决方法

报错信息:

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是基本类型的

    如果是这种

  

List files = new ArrayList<>();

  此list就不能被序列化 传递这种参数给dubbo的接口会报参数无法被序列化的错误

四、一般不能被序列化的有。

HttpServletRequest request

HttpSession session

MultipartFile

此处仅仅记录我在项目中遇到的问题。







你可能感兴趣的:(dubbo)