com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method insertOrUpdateOrderAndDetail in the service com.hszk.taurus.analy.api.consumerorder.ConsumerOrderService. Tried 2 times of the providers [192.168.0.141:20883] (1/1) from the registry localhost:2181 on the consumer 192.168.0.141 using the dubbo version 2.8.4. Last error is: Invoke remote method timeout. method: insertOrUpdateOrderAndDetail, provider: dubbo://192.168.0.141:20883/com.hszk.taurus.analy.api.consumerorder.ConsumerOrderService?anyhost=true&application=application_web&check=false&default.delay=-1&default.retries=1&default.timeout=3000&delay=-1&dubbo=2.8.4&generic=false&interface=com.hszk.taurus.analy.api.consumerorder.ConsumerOrderService&methods=getPage,insertOrUpdateOrderAndDetail&pid=11428&revision=1.0.0&side=consumer×tamp=1504246867426&version=1.0.0, cause: Waiting server-side response timeout. start time: 2017-09-01 14:23:35.296, end time: 2017-09-01 14:23:38.297, client elapsed: 0 ms, server elapsed: 3001 ms, timeout: 3000 ms, request: Request [id=2, version=2.0.0, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=insertOrUpdateOrderAndDetail, parameterTypes=[class java.lang.String], arguments=[null], attachments={path=com.hszk.taurus.analy.api.consumerorder.ConsumerOrderService, interface=com.hszk.taurus.analy.api.consumerorder.ConsumerOrderService, version=1.0.0, timeout=3000}]], channel: /192.168.0.141:50361 -> /192.168.0.141:20883
at com.alibaba.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:101)
at com.alibaba.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:227)
at com.alibaba.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:72)
at com.alibaba.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:52)
at com.alibaba.dubbo.common.bytecode.proxy15.insertOrUpdateOrderAndDetail(proxy15.java)
at com.hszk.taurus.web.indb.IndbController.consumerDataIndb(IndbController.java:48)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:817)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:731)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:968)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:870)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:844)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration$ApplicationContextHeaderFilter.doFilterInternal(EndpointWebMvcAutoConfiguration.java:237)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at com.hszk.taurus.filter.AutoLoginFilter.doFilter(AutoLoginFilter.java:58)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:112)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:87)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:125)
at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:65)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:103)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.alibaba.dubbo.remoting.TimeoutException: Waiting server-side response timeout. start time: 2017-09-01 14:23:35.296, end time: 2017-09-01 14:23:38.297, client elapsed: 0 ms, server elapsed: 3001 ms, timeout: 3000 ms, request: Request [id=2, version=2.0.0, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=insertOrUpdateOrderAndDetail, parameterTypes=[class java.lang.String], arguments=[null], attachments={path=com.hszk.taurus.analy.api.consumerorder.ConsumerOrderService, interface=com.hszk.taurus.analy.api.consumerorder.ConsumerOrderService, version=1.0.0, timeout=3000}]], channel: /192.168.0.141:50361 -> /192.168.0.141:20883
at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture.get(DefaultFuture.java:107)
at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture.get(DefaultFuture.java:84)
at com.alibaba.dubbo.rpc.protocol.dubbo.DubboInvoker.doInvoke(DubboInvoker.java:96)
at com.alibaba.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:144)
at com.alibaba.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:74)
at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
at com.alibaba.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:53)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
at com.alibaba.dubbo.rpc.filter.ConsumerContextFilter.invoke(ConsumerContextFilter.java:48)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:53)
at com.alibaba.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:77)
... 77 more
service挺简单的:
@Service(version = "1.0.0")
@EnableAutoConfiguration
@Transactional
public class ConsumerOrderServiceImpl implements ConsumerOrderService {
@Autowired
private ConsumerOrderDao consumerOrderDao;
@Autowired
private ConsumerOrderDetailDao orderDetailDao;
//新增或更新消费数据
@Override
public void insertOrUpdateOrderAndDetail(String consumerData) throws Exception {
ConsumerOrder order = JSONUtil.toBean(consumerData, ConsumerOrder.class);
ConsumerOrder existOrder = consumerOrderDao.getByOrderAndStoreId(order.getOrderNo(),order.getStoreId());
if(existOrder == null){
consumerOrderDao.insertSelective(order);
orderDetailDao.insertList(order.getDetailList());
}else{
int updateSucc = consumerOrderDao.updateByOrderAndMallId(order);
if(updateSucc == 1){
for (ConsumerOrderDetail detail : order.getDetailList()) {
orderDetailDao.updateByIdAndOrderId(detail);
}
}
}
}
public class ConsumerOrder implements Serializable {
private static final long serialVersionUID = 1L;
//order表的属性(createBy,createTime,updateBy,updateTime公用)
private Long id;
private Long storeId;// 门店id
private String printTime;// 打印时间
private String cashierNo;// 收银员编号
private Long terminalId;// 终端id
private String orderNo;// 单号--流水号
private String vipCardNo;// 积分卡号
private String rewardPoints;// 积分
private Integer shoppingQuantity;// 购买件数
private BigDecimal shouldPayAmount;// 应付金额
private BigDecimal cashAmount;// 现金
private BigDecimal paidInAmount;// 实收金额
private BigDecimal changes;// 找零
private Long createBy = new Long(0);//创建人
private Date createTime;//创建时间
private Long updateBy = new Long(0);//修改人
private Date updateTime;//修改时间
private Long mallId;// 卖场id
private String terminalNo;// 终端编号
private String ossLocation;//消费小票在oss的路径
// 扩展属性
private String storeName;// 门店名
private String mallName;// 卖场名称
private String printCTime;// 开始时间
private String printETime;//结束时间
private BigDecimal shouldPayCAmount;// 金额范围的上下限
private BigDecimal shouldPayEAmount;// 金额范围的上限
private List<ConsumerOrderDetail> detailList;// 清单明细列表
private String isAdditional; // 是否是补打的
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getStoreId() {
return storeId;
}
public void setStoreId(Long storeId) {
this.storeId = storeId;
}
public String getPrintTime() {
return printTime;
}
public void setPrintTime(String printTime) {
this.printTime = printTime;
}
public String getCashierNo() {
return cashierNo;
}
public void setCashierNo(String cashierNo) {
this.cashierNo = cashierNo;
}
public Long getTerminalId() {
return terminalId;
}
public void setTerminalId(Long terminalId) {
this.terminalId = terminalId;
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public String getVipCardNo() {
return vipCardNo;
}
public void setVipCardNo(String vipCardNo) {
this.vipCardNo = vipCardNo;
}
public String getRewardPoints() {
return rewardPoints;
}
public void setRewardPoints(String rewardPoints) {
this.rewardPoints = rewardPoints;
}
public Integer getShoppingQuantity() {
return shoppingQuantity;
}
public void setShoppingQuantity(Integer shoppingQuantity) {
this.shoppingQuantity = shoppingQuantity;
}
public BigDecimal getShouldPayAmount() {
return shouldPayAmount;
}
public void setShouldPayAmount(BigDecimal shouldPayAmount) {
this.shouldPayAmount = shouldPayAmount;
}
public BigDecimal getCashAmount() {
return cashAmount;
}
public void setCashAmount(BigDecimal cashAmount) {
this.cashAmount = cashAmount;
}
public BigDecimal getPaidInAmount() {
return paidInAmount;
}
public void setPaidInAmount(BigDecimal paidInAmount) {
this.paidInAmount = paidInAmount;
}
public BigDecimal getChanges() {
return changes;
}
public void setChanges(BigDecimal changes) {
this.changes = changes;
}
public Long getCreateBy() {
return createBy;
}
public void setCreateBy(Long createBy) {
this.createBy = createBy;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Long getUpdateBy() {
return updateBy;
}
public void setUpdateBy(Long updateBy) {
this.updateBy = updateBy;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Long getMallId() {
return mallId;
}
public void setMallId(Long mallId) {
this.mallId = mallId;
}
public String getTerminalNo() {
return terminalNo;
}
public void setTerminalNo(String terminalNo) {
this.terminalNo = terminalNo;
}
public String getOssLocation() {
return ossLocation;
}
public void setOssLocation(String ossLocation) {
this.ossLocation = ossLocation;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public String getMallName() {
return mallName;
}
public void setMallName(String mallName) {
this.mallName = mallName;
}
public String getPrintCTime() {
return printCTime;
}
public void setPrintCTime(String printCTime) {
this.printCTime = printCTime;
}
public String getPrintETime() {
return printETime;
}
public void setPrintETime(String printETime) {
this.printETime = printETime;
}
public BigDecimal getShouldPayCAmount() {
return shouldPayCAmount;
}
public void setShouldPayCAmount(BigDecimal shouldPayCAmount) {
this.shouldPayCAmount = shouldPayCAmount;
}
public BigDecimal getShouldPayEAmount() {
return shouldPayEAmount;
}
public void setShouldPayEAmount(BigDecimal shouldPayEAmount) {
this.shouldPayEAmount = shouldPayEAmount;
}
public List<ConsumerOrderDetail> getDetailList() {
return detailList;
}
public void setDetailList(List<ConsumerOrderDetail> detailList) {
this.detailList = detailList;
}
public String getIsAdditional() {
return isAdditional;
}
public void setIsAdditional(String isAdditional) {
this.isAdditional = isAdditional;
}
@Override
public String toString() {
return "ConsumerOrder [id=" + id + ", storeId=" + storeId
+ ", printTime=" + printTime + ", cashierNo=" + cashierNo
+ ", terminalId=" + terminalId + ", orderNo=" + orderNo
+ ", vipCardNo=" + vipCardNo + ", rewardPoints=" + rewardPoints
+ ", shoppingQuantity=" + shoppingQuantity
+ ", shouldPayAmount=" + shouldPayAmount + ", cashAmount="
+ cashAmount + ", paidInAmount=" + paidInAmount + ", changes="
+ changes + ", createBy=" + createBy + ", createTime="
+ createTime + ", updateBy=" + updateBy + ", updateTime="
+ updateTime + ", mallId=" + mallId + ", terminalNo="
+ terminalNo + ", ossLocation=" + ossLocation + ", storeName="
+ storeName + ", mallName=" + mallName + ", printCTime="
+ printCTime + ", printETime=" + printETime
+ ", shouldPayCAmount=" + shouldPayCAmount
+ ", shouldPayEAmount=" + shouldPayEAmount + ", detailList="
+ detailList + ", isAdditional=" + isAdditional + "]";
}
public class ConsumerOrderForm implements Serializable {
private static final long serialVersionUID = 1L;
// order表的属性(createBy,createTime,updateBy,updateTime公用)
private Long id;
private Long storeId;// 门店id
private String printTime;// 打印时间
private String cashierNo;// 收银员编号
private Long terminalId;// 终端id
private String orderNo;// 单号--流水号
private String vipCardNo;// 积分卡号
private String rewardPoints;// 积分
private Integer shoppingQuantity;// 购买件数
private BigDecimal shouldPayAmount;// 应付金额
private BigDecimal cashAmount;// 现金
private BigDecimal paidInAmount;// 实收金额
private BigDecimal changes;// 找零
private Long createBy = new Long(0);// 创建人
private Date createTime;// 创建时间
private Long updateBy = new Long(0);// 修改人
private Date updateTime;// 修改时间
private Long mallId;// 卖场id
private String terminalNo;// 终端编号
private String ossLocation;// 消费小票在oss的路径
// 扩展属性
private String storeName;// 门店名
private String mallName;// 卖场名称
private String printCTime;// 开始时间
private String printETime;// 结束时间
private BigDecimal shouldPayCAmount;// 金额范围的上下限
private BigDecimal shouldPayEAmount;// 金额范围的上限
private List<ConsumerOrderDetailForm> detailList;// 清单明细列表
private String isAdditional; // 是否是补打的
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getStoreId() {
return storeId;
}
public void setStoreId(Long storeId) {
this.storeId = storeId;
}
public String getPrintTime() {
return printTime;
}
public void setPrintTime(String printTime) {
this.printTime = printTime;
}
public String getCashierNo() {
return cashierNo;
}
public void setCashierNo(String cashierNo) {
this.cashierNo = cashierNo;
}
public Long getTerminalId() {
return terminalId;
}
public void setTerminalId(Long terminalId) {
this.terminalId = terminalId;
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public String getVipCardNo() {
return vipCardNo;
}
public void setVipCardNo(String vipCardNo) {
this.vipCardNo = vipCardNo;
}
public String getRewardPoints() {
return rewardPoints;
}
public void setRewardPoints(String rewardPoints) {
this.rewardPoints = rewardPoints;
}
public Integer getShoppingQuantity() {
return shoppingQuantity;
}
public void setShoppingQuantity(Integer shoppingQuantity) {
this.shoppingQuantity = shoppingQuantity;
}
public BigDecimal getShouldPayAmount() {
return shouldPayAmount;
}
public void setShouldPayAmount(BigDecimal shouldPayAmount) {
this.shouldPayAmount = shouldPayAmount;
}
public BigDecimal getCashAmount() {
return cashAmount;
}
public void setCashAmount(BigDecimal cashAmount) {
this.cashAmount = cashAmount;
}
public BigDecimal getPaidInAmount() {
return paidInAmount;
}
public void setPaidInAmount(BigDecimal paidInAmount) {
this.paidInAmount = paidInAmount;
}
public BigDecimal getChanges() {
return changes;
}
public void setChanges(BigDecimal changes) {
this.changes = changes;
}
public Long getCreateBy() {
return createBy;
}
public void setCreateBy(Long createBy) {
this.createBy = createBy;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Long getUpdateBy() {
return updateBy;
}
public void setUpdateBy(Long updateBy) {
this.updateBy = updateBy;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Long getMallId() {
return mallId;
}
public void setMallId(Long mallId) {
this.mallId = mallId;
}
public String getTerminalNo() {
return terminalNo;
}
public void setTerminalNo(String terminalNo) {
this.terminalNo = terminalNo;
}
public String getOssLocation() {
return ossLocation;
}
public void setOssLocation(String ossLocation) {
this.ossLocation = ossLocation;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public String getMallName() {
return mallName;
}
public void setMallName(String mallName) {
this.mallName = mallName;
}
public String getPrintCTime() {
return printCTime;
}
public void setPrintCTime(String printCTime) {
this.printCTime = printCTime;
}
public String getPrintETime() {
return printETime;
}
public void setPrintETime(String printETime) {
this.printETime = printETime;
}
public BigDecimal getShouldPayCAmount() {
return shouldPayCAmount;
}
public void setShouldPayCAmount(BigDecimal shouldPayCAmount) {
this.shouldPayCAmount = shouldPayCAmount;
}
public BigDecimal getShouldPayEAmount() {
return shouldPayEAmount;
}
public void setShouldPayEAmount(BigDecimal shouldPayEAmount) {
this.shouldPayEAmount = shouldPayEAmount;
}
public List<ConsumerOrderDetailForm> getDetailList() {
return detailList;
}
public void setDetailList(List<ConsumerOrderDetailForm> detailList) {
this.detailList = detailList;
}
public String getIsAdditional() {
return isAdditional;
}
public void setIsAdditional(String isAdditional) {
this.isAdditional = isAdditional;
}
@Override
public String toString() {
return "ConsumerOrderForm [id=" + id + ", storeId=" + storeId
+ ", printTime=" + printTime + ", cashierNo=" + cashierNo
+ ", terminalId=" + terminalId + ", orderNo=" + orderNo
+ ", vipCardNo=" + vipCardNo + ", rewardPoints=" + rewardPoints
+ ", shoppingQuantity=" + shoppingQuantity
+ ", shouldPayAmount=" + shouldPayAmount + ", cashAmount="
+ cashAmount + ", paidInAmount=" + paidInAmount + ", changes="
+ changes + ", createBy=" + createBy + ", createTime="
+ createTime + ", updateBy=" + updateBy + ", updateTime="
+ updateTime + ", mallId=" + mallId + ", terminalNo="
+ terminalNo + ", ossLocation=" + ossLocation + ", storeName="
+ storeName + ", mallName=" + mallName + ", printCTime="
+ printCTime + ", printETime=" + printETime
+ ", shouldPayCAmount=" + shouldPayCAmount
+ ", shouldPayEAmount=" + shouldPayEAmount + ", detailList="
+ detailList + ", isAdditional=" + isAdditional + "]";
}
public class ConsumerOrderDetail implements Serializable{
private static final long serialVersionUID = 1L;
//detail表的属性(createBy,createTime,updateBy,updateTime公用)
private Long id;
private Long consumerOrderId;// 客户订单id
private Integer listOrder;// 购买物品序号
private String commodityName;// 商品名称
private String barCode;// 条形码
private Double quantity;// 数量
private BigDecimal salePrice;// 实售
private BigDecimal unitPrice;// 单价
private Double discount;// 折扣
private BigDecimal money;// 金额
private Long createBy = new Long(0);//创建人
private Date createTime;//创建时间
private Long updateBy = new Long(0);//修改人
private Date updateTime;//修改时间
private int isJoinActivity = 0;// 是否参与优惠活动。0-没参与,1参与
private String typeId;//商品小分类ID
private String brandCode;//商品code
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getConsumerOrderId() {
return consumerOrderId;
}
public void setConsumerOrderId(Long consumerOrderId) {
this.consumerOrderId = consumerOrderId;
}
public Integer getListOrder() {
return listOrder;
}
public void setListOrder(Integer listOrder) {
this.listOrder = listOrder;
}
public String getCommodityName() {
return commodityName;
}
public void setCommodityName(String commodityName) {
this.commodityName = commodityName;
}
public String getBarCode() {
return barCode;
}
public void setBarCode(String barCode) {
this.barCode = barCode;
}
public Double getQuantity() {
return quantity;
}
public void setQuantity(Double quanity) {
this.quantity = quanity;
}
public BigDecimal getSalePrice() {
return salePrice;
}
public void setSalePrice(BigDecimal salePrice) {
this.salePrice = salePrice;
}
public BigDecimal getUnitPrice() {
return unitPrice;
}
public void setUnitPrice(BigDecimal unitPrice) {
this.unitPrice = unitPrice;
}
public Double getDiscount() {
return discount;
}
public void setDiscount(Double discount) {
this.discount = discount;
}
public BigDecimal getMoney() {
return money;
}
public void setMoney(BigDecimal money) {
this.money = money;
}
public Long getCreateBy() {
return createBy;
}
public void setCreateBy(Long createBy) {
this.createBy = createBy;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Long getUpdateBy() {
return updateBy;
}
public void setUpdateBy(Long updateBy) {
this.updateBy = updateBy;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public int getIsJoinActivity() {
return isJoinActivity;
}
public void setIsJoinActivity(int isJoinActivity) {
this.isJoinActivity = isJoinActivity;
}
public String getTypeId() {
return typeId;
}
public void setTypeId(String typeId) {
this.typeId = typeId;
}
public String getBrandCode() {
return brandCode;
}
public void setBrandCode(String brandCode) {
this.brandCode = brandCode;
}
@Override
public String toString() {
return "ConsumerOrderDetail [id=" + id + ", consumerOrderId="
+ consumerOrderId + ", listOrder=" + listOrder
+ ", commodityName=" + commodityName + ", barCode=" + barCode
+ ", quantity=" + quantity + ", salePrice=" + salePrice
+ ", unitPrice=" + unitPrice + ", discount=" + discount
+ ", money=" + money + ", createBy=" + createBy
+ ", createTime=" + createTime + ", updateBy=" + updateBy
+ ", updateTime=" + updateTime + ", isJoinActivity="
+ isJoinActivity + ", typeId=" + typeId + ", brandCode="
+ brandCode + "]";
}
public class ConsumerOrderDetailForm implements Serializable {
private static final long serialVersionUID = 1L;
//detail表的属性(createBy,createTime,updateBy,updateTime公用)
private Long id;
private Long consumerOrderId;// 客户订单id
private Integer listOrder;// 购买物品序号
private String commodityName;// 商品名称
private String barCode;// 条形码
private Double quantity;// 数量
private BigDecimal salePrice;// 实售
private BigDecimal unitPrice;// 单价
private Double discount;// 折扣
private BigDecimal money;// 金额
private Long createBy = new Long(0);//创建人
private Date createTime;//创建时间
private Long updateBy = new Long(0);//修改人
private Date updateTime;//修改时间
private int isJoinActivity = 0;// 是否参与优惠活动。0-没参与,1参与
private String typeId;//商品小分类ID
private String brandCode;//商品code
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getConsumerOrderId() {
return consumerOrderId;
}
public void setConsumerOrderId(Long consumerOrderId) {
this.consumerOrderId = consumerOrderId;
}
public Integer getListOrder() {
return listOrder;
}
public void setListOrder(Integer listOrder) {
this.listOrder = listOrder;
}
public String getCommodityName() {
return commodityName;
}
public void setCommodityName(String commodityName) {
this.commodityName = commodityName;
}
public String getBarCode() {
return barCode;
}
public void setBarCode(String barCode) {
this.barCode = barCode;
}
public Double getQuantity() {
return quantity;
}
public void setQuantity(Double quanity) {
this.quantity = quanity;
}
public BigDecimal getSalePrice() {
return salePrice;
}
public void setSalePrice(BigDecimal salePrice) {
this.salePrice = salePrice;
}
public BigDecimal getUnitPrice() {
return unitPrice;
}
public void setUnitPrice(BigDecimal unitPrice) {
this.unitPrice = unitPrice;
}
public Double getDiscount() {
return discount;
}
public void setDiscount(Double discount) {
this.discount = discount;
}
public BigDecimal getMoney() {
return money;
}
public void setMoney(BigDecimal money) {
this.money = money;
}
public Long getCreateBy() {
return createBy;
}
public void setCreateBy(Long createBy) {
this.createBy = createBy;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Long getUpdateBy() {
return updateBy;
}
public void setUpdateBy(Long updateBy) {
this.updateBy = updateBy;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public int getIsJoinActivity() {
return isJoinActivity;
}
public void setIsJoinActivity(int isJoinActivity) {
this.isJoinActivity = isJoinActivity;
}
public String getTypeId() {
return typeId;
}
public void setTypeId(String typeId) {
this.typeId = typeId;
}
public String getBrandCode() {
return brandCode;
}
public void setBrandCode(String brandCode) {
this.brandCode = brandCode;
}
@Override
public String toString() {
return "ConsumerOrderDetail [id=" + id + ", consumerOrderId="
+ consumerOrderId + ", listOrder=" + listOrder
+ ", commodityName=" + commodityName + ", barCode=" + barCode
+ ", quantity=" + quantity + ", salePrice=" + salePrice
+ ", unitPrice=" + unitPrice + ", discount=" + discount
+ ", money=" + money + ", createBy=" + createBy
+ ", createTime=" + createTime + ", updateBy=" + updateBy
+ ", updateTime=" + updateTime + ", isJoinActivity="
+ isJoinActivity + ", typeId=" + typeId + ", brandCode="
+ brandCode + "]";
}
}
------------------------期待回复-------------------------------
cause: Waiting server-side response timeout。是不是服务超时了,insertOrUpdateOrderAndDetail方法耗时大于timeout时间(看你的设置是3秒)。应该是这个原因,还有信息:client elapsed: 0 ms, server elapsed: 3001 ms, timeout: 3000 ms,
@abatorQ 你好,我把时间改成了6秒,还是这个错。我在本地跑的,数据库在公司局域网,而且存一条数据,这个数据量很小,存一条数据花不了这么多时间,肯定问题在别的地方。
打断点看看
@wonderlq 打断点了,还是这个错,而且还不知道是哪行
你可以先把insertOrUpdateOrderAndDetail方法里面的内容注释掉,不要留任何逻辑,先排除是 方法超时的原因吧。
服务端有接收到请求吗?如果有,那从接收到处理完一共花了多久,是否大于配置的超时时间,前后加几个log就可以知道了。如果没有接收到请求,那检查下配置吧
循环里面调用update是不是很慢啊。。
6021 > 6000,所以timeout,所以dubbo retry 2次。
问题应该是明确了吧,应该是超时问题,我把问题关闭掉了
怎么解决?
@dingziyang 在忙吗?我也遇到同样的问题了,timeout设置1000s,还是报如下错误如何解决?
Tried 3 times of the providers [10.6.18.16:23880, 10.6.18.17:23880] (2/2) from the registry 10.8.8.2:2181 on the consumer 10.6.6.239 using the dubbo version 2.5.3. Last error is: Failed to invoke remote method: finRiCedDue,