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(){ }}
