-
警告: Hessian/Burlap: 'com.github.pagehelper.Page' is an unknown class in WebappClassLoader -
context: -
delegate: false -
repositories: -
----------> Parent Classloader: -
ClassRealm[plugin>org.apache.tomcat.maven:tomcat7-maven-plugin:2.2, parent: sun.misc.Launcher$AppClassLoader@7692ed85] -
: -
java.lang.ClassNotFoundException: com.github.pagehelper.Page -
十月 18, 2018 8:21:43 下午 com.alibaba.com.caucho.hessian.io.SerializerFactory getDeserializer -
警告: Hessian/Burlap: 'com.github.pagehelper.Page' is an unknown class in WebappClassLoader -
context: -
delegate: false -
repositories: -
----------> Parent Classloader: -
ClassRealm[plugin>org.apache.tomcat.maven:tomcat7-maven-plugin:2.2, parent: sun.misc.Launcher$AppClassLoader@7692ed85] -
: -
java.lang.ClassNotFoundException: com.github.pagehelper.Page
主要是:警告: Hessian/Burlap: 'com.github.pagehelper.Page' is an unknown class in WebappClassLoader。
出现这个问题的原因是:客户端在调用服务时会将参数自动序列化,服务提供方在反序列化时无法以最有效的方式反序列话,就会产生如上警告。但我们的程序还是行之有效的。
所以解决办法就是在web工程的pom.xml中加上PageHelper的依赖。版本在父工程中定义了。
-
<dependency> -
<groupId>com.github.pagehelper</groupId> -
<artifactId>pagehelper</artifactId> -
</dependency>
但是随之又有一个错误:
-
严重: Servlet.service() for servlet [springmvc] in context with path [] threw exception [Request processing failed; nested exception is com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method findPage in the service com.pinyougou.sellergoods.service.BrandService. Tried 3 times of the providers [192.168.119.1:20881] (1/1) from the registry 192.168.25.128:2181 on the consumer 192.168.119.1 using the dubbo version 2.8.4. Last error is: Failed to invoke remote method: findPage, provider: dubbo://192.168.119.1:20881/com.pinyougou.sellergoods.service.BrandService?anyhost=true&application=pinyougou-manager-web&check=false&dubbo=2.8.4&generic=false&interface=com.pinyougou.sellergoods.service.BrandService&methods=findAll,findPage&pid=7868&revision=0.0.1-SNAPSHOT&side=consumer×tamp=1539865646410, cause: java.lang.NoClassDefFoundError: org/apache/ibatis/session/RowBounds -
java.lang.NoClassDefFoundError: org/apache/ibatis/session/RowBounds -
at java.lang.Class.getDeclaredConstructors0(Native Method) -
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2493) -
at java.lang.Class.getConstructor0(Class.java:2803) -
at java.lang.Class.newInstance(Class.java:345) -
at com.alibaba.com.caucho.hessian.io.CollectionDeserializer.createList(CollectionDeserializer.java:107) -
at com.alibaba.com.caucho.hessian.io.CollectionDeserializer.readLengthList(CollectionDeserializer.java:88) -
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1628) -
at com.alibaba.com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:396) -
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:233) -
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:157) -
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.dubbo.common.serialize.support.hessian.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:94) -
at com.alibaba.dubbo.common.serialize.support.hessian.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:99) -
at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:85) -
at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:117) -
at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCodec.decodeBody(DubboCodec.java:98) -
at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:134) -
at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:95) -
at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.decode(DubboCountCodec.java:46) -
at com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter$InternalDecoder.messageReceived(NettyCodecAdapter.java:134) -
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) -
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) -
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) -
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) -
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) -
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) -
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:109) -
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312) -
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:90) -
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) -
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) -
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) -
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) -
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) -
at java.lang.Thread.run(Thread.java:744) -
Caused by: java.lang.ClassNotFoundException: org.apache.ibatis.session.RowBounds -
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702) -
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547) -
... 37 more -
] with root cause -
com.alibaba.dubbo.remoting.RemotingException: java.lang.NoClassDefFoundError: org/apache/ibatis/session/RowBounds -
java.lang.NoClassDefFoundError: org/apache/ibatis/session/RowBounds -
at java.lang.Class.getDeclaredConstructors0(Native Method) -
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2493) -
at java.lang.Class.getConstructor0(Class.java:2803) -
at java.lang.Class.newInstance(Class.java:345) -
at com.alibaba.com.caucho.hessian.io.CollectionDeserializer.createList(CollectionDeserializer.java:107) -
at com.alibaba.com.caucho.hessian.io.CollectionDeserializer.readLengthList(CollectionDeserializer.java:88) -
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1628) -
at com.alibaba.com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:396) -
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:233) -
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:157) -
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.dubbo.common.serialize.support.hessian.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:94) -
at com.alibaba.dubbo.common.serialize.support.hessian.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:99) -
at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:85) -
at com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:117) -
at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCodec.decodeBody(DubboCodec.java:98) -
at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:134) -
at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec.decode(ExchangeCodec.java:95) -
at com.alibaba.dubbo.rpc.protocol.dubbo.DubboCountCodec.decode(DubboCountCodec.java:46) -
at com.alibaba.dubbo.remoting.transport.netty.NettyCodecAdapter$InternalDecoder.messageReceived(NettyCodecAdapter.java:134) -
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) -
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) -
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) -
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) -
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) -
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) -
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:109) -
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312) -
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:90) -
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) -
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) -
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) -
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) -
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) -
at java.lang.Thread.run(Thread.java:744) -
Caused by: java.lang.ClassNotFoundException: org.apache.ibatis.session.RowBounds -
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702) -
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547) -
... 37 more -
at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture.returnFromResponse(DefaultFuture.java:190) -
at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture.get(DefaultFuture.java:110) -
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.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.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75) -
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) -
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.proxy0.findPage(proxy0.java) -
at com.pinyougou.manager.controller.BrandController.findPage(BrandController.java:50) -
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) -
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) -
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) -
at java.lang.reflect.Method.invoke(Method.java:606) -
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:222) -
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137) -
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:814) -
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737) -
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:969) -
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:860) -
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) -
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845) -
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) -
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) -
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) -
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) -
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) -
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) -
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:243) -
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) -
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) -
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) -
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) -
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) -
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) -
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) -
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) -
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) -
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) -
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) -
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) -
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) -
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) -
at java.lang.Thread.run(Thread.java:744)
总结就是这个错误:java.lang.NoClassDefFoundError: org/apache/ibatis/session/RowBounds
这是因为web工程中没有依赖MyBatis的包,在pom.xml中再次添加上相应的依赖就行。
所以,整个的解决办法是在web的pom.xml中 加上PageHelper和Mybatis的依赖。
-
<dependency> -
<groupId>com.github.pagehelper</groupId> -
<artifactId>pagehelper</artifactId> -
</dependency> -
<dependency> -
<groupId>org.mybatis</groupId> -
<artifactId>mybatis</artifactId> -
</dependency>
在使用dubbo进行分布式处理时遇到PageHelper插件问题,表现为Hessian/Burlap警告,原因是服务提供方在反序列化时找不到'com.github.pagehelper.Page'类。解决方案是在web工程的pom.xml中添加PageHelper和MyBatis的依赖,以解决类找不到错误(NoClassDefFoundError: org/apache/ibatis/session/RowBounds)。
717





