Wicket Websocket

时间:2016-07-20 13:44:13

标签: java dependency-injection websocket wicket classnotfound

在我的wicket Web应用程序中打开或关闭websocket连接时,通常会显示以下错误:

    2016-07-11 10:53:07,874 ERROR [::] [qtp1484594489-42303] [] [||] - org.apache.wicket.protocol.ws.api.AbstractWebSocketProcessor - An error occurred during processing of a WebSocket message
net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException-->null
    at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:256)
    at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:378)
    at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:286)
    at org.apache.wicket.proxy.LazyInitProxyFactory.createProxy(LazyInitProxyFactory.java:191)
    at org.apache.wicket.proxy.LazyInitProxyFactory$ProxyReplacement.readResolve(LazyInitProxyFactory.java:270)
    at sun.reflect.GeneratedMethodAccessor7815.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at java.io.ObjectStreamClass.invokeReadResolve(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    at java.io.ObjectInputStream.readSerialData(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    at java.io.ObjectInputStream.readSerialData(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    at java.io.ObjectInputStream.readSerialData(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    at java.io.ObjectInputStream.readSerialData(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.readObject(Unknown Source)
    at java.util.ArrayList.readObject(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor7812.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
    at java.io.ObjectInputStream.readSerialData(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    at java.io.ObjectInputStream.readSerialData(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.readObject(Unknown Source)
    at org.apache.wicket.serialize.java.JavaSerializer.deserialize(JavaSerializer.java:122)
    at org.apache.wicket.pageStore.AbstractPageStore.deserializePage(AbstractPageStore.java:152)
    at org.apache.wicket.pageStore.AbstractCachingPageStore.getPage(AbstractCachingPageStore.java:67)
    at org.apache.wicket.page.PageStoreManager$SessionEntry.getPage(PageStoreManager.java:203)
    at org.apache.wicket.page.PageStoreManager$PersistentRequestAdapter.getPage(PageStoreManager.java:357)
    at org.apache.wicket.page.AbstractPageManager.getPage(AbstractPageManager.java:82)
    at org.apache.wicket.page.PageManagerDecorator.getPage(PageManagerDecorator.java:50)
    at org.apache.wicket.page.PageAccessSynchronizer$2.getPage(PageAccessSynchronizer.java:246)
    at org.apache.wicket.protocol.ws.api.AbstractWebSocketProcessor.getPage(AbstractWebSocketProcessor.java:315)
    at org.apache.wicket.protocol.ws.api.AbstractWebSocketProcessor.broadcastMessage(AbstractWebSocketProcessor.java:243)
    at org.apache.wicket.protocol.ws.api.AbstractWebSocketProcessor.onClose(AbstractWebSocketProcessor.java:182)
    at org.apache.wicket.protocol.ws.jetty.JettyWebSocketProcessor$JettyWebSocket.onClose(JettyWebSocketProcessor.java:56)
    at org.eclipse.jetty.websocket.WebSocketConnectionRFC6455.closeIn(WebSocketConnectionRFC6455.java:332)
    at org.eclipse.jetty.websocket.WebSocketConnectionRFC6455.handle(WebSocketConnectionRFC6455.java:257)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at net.sf.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:395)
    at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:237)
    ... 59 more
Caused by: java.lang.NoClassDefFoundError: org/apache/wicket/proxy/ILazyInitProxy
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    ... 64 more
Caused by: java.lang.ClassNotFoundException: org.apache.wicket.proxy.ILazyInitProxy
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 66 more

AbstractWebSocketProcessor 类尝试广播消息以通知侦听器websocket关闭。 在这样做时,它会尝试加载wicket页面。该页面包含多个自动装配的字段,需要进行反序列化,但这就是代理类的classnotfoundexception发生的地方。

我怀疑这个问题是导致线程泄漏的原因,但是我无法一致地重现错误。

这个错误怎么会发生?

0 个答案:

没有答案