-
警告: 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>