package com.ounersc.ic.adviser.shop.model;
import lombok.Data;
import java.io.Serializable;
@Data
public class PageModel implements Serializable{
private String begin = "0";
private String end = "10";
private Long totalCount = 0L;
private Long totalPage = 0L;
public PageModel(Long totalCount,Integer pageIndex,Integer pageSize ){
this.totalCount = totalCount;
this.totalPage = (totalCount % pageSize == 0 ? totalCount / pageSize : totalCount / pageSize + 1);
if (pageIndex < 1){
pageIndex = 1;
}
Integer beginNum = ((pageIndex - 1) * pageSize);
Integer endNum = ((pageIndex) * pageSize);
this.begin = beginNum.toString();
this.end = endNum.toString();
}
}
PageModel 类在dubbo-Service 工程跑test时正常,但是在客户端调用却抛出异常:
Caused by: com.alibaba.com.caucho.hessian.io.HessianProtocolException: 'com.ounersc.ic.adviser.shop.model.PageModel' could not be instantiated
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.instantiate(JavaDeserializer.java:275)
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:155)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2067)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1592)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1576)
at com.alibaba.com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:396)
... 27 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.instantiate(JavaDeserializer.java:271)
... 32 more
Caused by: java.lang.NullPointerException
at com.ounersc.ic.adviser.shop.model.PageModel.<init>(PageModel.java:20)
... 37 more
原因详见:http://www.bubuko.com/infodetail-1571879.html
解决方法:
加入一个无参数默认构造函数即可
@Data
public class PageModel implements Serializable{
private String begin = "0";
private String end = "10";
private Long totalCount = 0L;
private Long totalPage = 0L;
public PageModel(Long totalCount,Integer pageIndex,Integer pageSize ){
this.totalCount = totalCount;
this.totalPage = (totalCount % pageSize == 0 ? totalCount / pageSize : totalCount / pageSize + 1);
if (pageIndex < 1){
pageIndex = 1;
}
Integer beginNum = ((pageIndex - 1) * pageSize);
Integer endNum = ((pageIndex) * pageSize);
this.begin = beginNum.toString();
this.end = endNum.toString();
}
public PageModel(){
}
}