0

나는 RequestFactory를 사용하는 GWT 웹 애플리케이션이 - 응용 프로그램이 잘 실행 보이지만, 최대한 빨리 브라우저에서 열려고 한,이 예외 불면 :GWT Deobfuscator 빌더는 ClassCastException

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) 
    .... 

MyAppRequestFactoryDeobfuscatorBuilder 클래스가 자동 생성되므로 (My 클래스는 MyAppRequestFactory 임) 디버깅하기가 매우 어렵습니다. 이것은 몇 주 전에 내가이 응용 프로그램을 마지막으로 사용했을 때 일어난 적이 없었습니다. 이 오류의 원인은 무엇이며 어떻게 수정합니까? 나는 GWT 전문가가 아니므로, 작은 말과 이해할 수있는 설명이 인정 될 것입니다!

답변

0

이것은 가능성이 클래스 로더 문제 Deobfuscator.Builder 다른 (그리고 형제 자매 또는 자녀가 아닌 부모) MyAppRequestFactoryDeobfuscatorBuilder 이상의 클래스 로더에서로드되는, 그래서 MyAppRequestFactoryDeobfuscatorBuilderDeobfuscator.Builder 부모 클래스를로드하려고 Deobfuscator.Builder 클래스와 같은하지 않다 .

근무한 시점과 현재 시점 사이에 아무 것도 변경하지 않았습니까?

(참고 : GWT 2.6.0's DevMode has a classloader issue, 그래서 당신은 GWT 2.6.0로 업데이트하고 엄격하게 WEB-INF/lib 및/또는 컴파일 된 클래스 WEB-INF/classes에없는에서 누락 된 일부 libs와 - 즉 예상되는 프로젝트 레이아웃을 따르지 않는 경우 - 그럼 당신은 할 수 그러한 문제를 실행)