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

    如果是这种

  

List<MultipartFile> files = new ArrayList<>();

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

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

HttpServletRequest request

HttpSession session

MultipartFile

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







  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值