GWT除臭剂生成器ClassCastException
我有一个使用RequestFactory的GWT Web应用程序-该应用程序似乎启动得很好,但当我尝试在浏览器中打开它时,它就会出现以下异常:GWT除臭剂生成器ClassCastException,gwt,builder,classcastexception,requestfactory,deobfuscation,Gwt,Builder,Classcastexception,Requestfactory,Deobfuscation,我有一个使用RequestFactory的GWT Web应用程序-该应用程序似乎启动得很好,但当我尝试在浏览器中打开它时,它就会出现以下异常: com.google.web.bindery.requestfactory.server.RequestFactoryServlet doPost SEVERE: Unexpected error java.lang.ClassCastException: class com.myapp.console.shared.MyAppRequestFactor
com.google.web.bindery.requestfactory.server.RequestFactoryServlet doPost
SEVERE: Unexpected error
java.lang.ClassCastException: class com.myapp.console.shared.MyAppRequestFactoryDeobfuscatorBuilder
at java.lang.Class.asSubclass(Class.java:3126)
at com.google.web.bindery.requestfactory.vm.impl.Deobfuscator$Builder.load(Deobfuscator.java:52)
at com.google.web.bindery.requestfactory.server.ResolverServiceLayer.updateDeobfuscator(ResolverServiceLayer.java:43)
at com.google.web.bindery.requestfactory.server.ResolverServiceLayer.resolveRequestFactory(ResolverServiceLayer.java:176)
at com.google.web.bindery.requestfactory.server.ServiceLayerDecorator.resolveRequestFactory(ServiceLayerDecorator.java:172)
at com.google.web.bindery.requestfactory.server.ServiceLayerDecorator.resolveRequestFactory(ServiceLayerDecorator.java:172)
at com.google.web.bindery.requestfactory.server.ServiceLayerDecorator.resolveRequestFactory(ServiceLayerDecorator.java:172)
at com.google.web.bindery.requestfactory.server.ServiceLayerDecorator.resolveRequestFactory(ServiceLayerDecorator.java:172)
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 com.google.web.bindery.requestfactory.server.ServiceLayerCache.getOrCache(ServiceLayerCache.java:233)
at com.google.web.bindery.requestfactory.server.ServiceLayerCache.resolveRequestFactory(ServiceLayerCache.java:198)
at com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:215)
at com.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:135)
at com.google.web.bindery.requestfactory.server.RequestFactoryServlet.doPost(RequestFactoryServlet.java:133)
....
MyAppRequestFactoryDeobFactorBuilder类是自动生成的(我的类是MyAppRequestFactory),因此调试起来非常困难。几周前,当我上次使用这个应用程序时,这种情况并不经常发生。导致此错误的原因是什么?如何修复?我不是一个GWT专家,所以小词和易懂的解释将不胜感激 这可能是类加载器问题,
deobfousator.Builder
从不同的类加载器(同级或子级,而非父级)加载,而不是从MyAppRequestFactorydeobfousatorbuilder
加载,因此MyAppRequestFactoryDeobFousatorBuilder
的DeobFousator.Builder
父类与尝试加载它的DeobFousator.Builder
类不同
从开始工作到现在,你有没有改变什么
(注意:,因此,如果您更新到GWT 2.6.0,并且没有严格遵循预期的项目布局,即WEB-INF/lib
中缺少一些lib,和/或编译的类不在WEB-INF/classes
,那么您可以处理此类问题)