2010-11-21 29 views
0

GWT'de tarih deniyorum. Bu onaylamayı uygulamak gerçekten çok güzel. Ne yazık ki, kodum çalışmıyor.GWT - Neden bu tarih çalışmıyor?

Bu benim gerçek kod i #apartment yüklemeye çalıştığınızda

public class PageLoader implements EntryPoint, ValueChangeHandler<String> { 
    private FlowPanel pageloader; 
    private GWTServiceAsync rpcService; 

    public void onModuleLoad() { 
     pageloader=new FlowPanel(); 
     rpcService=GWT.create(GWTService.class); 
     pageloader.add(new HomepageContext(rpcService)); 
     RootPanel.get().add(pageloader); 

     History.addValueChangeHandler(this); 
     if(!History.getToken().isEmpty()){ 
      changePage(History.getToken()); 
     } 
    } 

    public void onValueChange(ValueChangeEvent event) { 
     changePage(History.getToken()); 
    } 

    public void changePage(String token) { 
     if(History.getToken().equals("apartment")) { 
      pageloader.clear(); 
      pageloader.add(new ApartmentContext(rpcService)); 
     } else { 
      pageloader.clear(); 
      pageloader.add(new HomepageContext(rpcService)); 
     } 
    } 
} 

############################################################ 

public class ApartmentContext extends Index { 
    public ApartmentContext(GWTServiceAsync rpcService) { 
     super(rpcService); 
     this.getContent().add(new Apartment()); 
    } 
}  

public class Apartment extends FlowPanel { 
    // somethings 
} 

############################################################ 

public class Index extends FlowPanel { 
    private Center center; 
    public Index(GWTServiceAsync rpcService) { 
     this.center=new Center(rpcService); 
     this.add(center); 
    } 
    public FlowPanel getContent() { 
     return center.getContent(); 
    } 
} 

############################################################ 

public class Center extends FlowPanel { 
    private Menu menu; 
    private Content content; 

    public Center(GWTServiceAsync rpcService) { 
     this.content=new Content(); 
     this.menu=new Menu(rpcService, this); 

     this.add(menu); 
     this.add(content); 
    } 

    public Content getContent() { 
     return this.content; 
    } 
} 

, alıyorum:

01:19:45,112 [ERROR] Uncaught exception escaped 
java.lang.NullPointerException: null  
at org.sinfonet.client.apartment.Apartment.<init>(Apartment.java:24)  
at org.sinfonet.client.context.ApartmentContext.<init>(ApartmentContext.java:14)  
at org.sinfonet.client.PageLoader.changePage(PageLoader.java:36)  
at org.sinfonet.client.PageLoader.onValueChange(PageLoader.java:30)  
at com.google.gwt.event.logical.shared.ValueChangeEvent.dispatch(ValueChangeEvent.java:128)  
at com.google.gwt.event.logical.shared.ValueChangeEvent.dispatch(ValueChangeEvent.java:1) 
at com.google.gwt.event.shared.HandlerManager$HandlerRegistry.fireEvent(HandlerManager.java:65)  
at com.google.gwt.event.shared.HandlerManager$HandlerRegistry.access$1(HandlerManager.java:53) 
at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:178)  
at com.google.gwt.user.client.impl.HistoryImpl.fireEvent(HistoryImpl.java:74) 
at com.google.gwt.event.logical.shared.ValueChangeEvent.fire(ValueChangeEvent.java:43) 
at com.google.gwt.user.client.impl.HistoryImpl.fireHistoryChangedImpl(HistoryImpl.java:81) 
at com.google.gwt.user.client.impl.HistoryImpl.newItem(HistoryImpl.java:118)  
at com.google.gwt.user.client.History.newItem(History.java:173)  
at com.google.gwt.user.client.History.newItem(History.java:156)  
at com.google.gwt.user.client.ui.Hyperlink.onBrowserEvent(Hyperlink.java:163) 
at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1307) 
at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1263) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)  
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
at java.lang.reflect.Method.invoke(Method.java:597)  
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)  
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71) 
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157)  
at com.google.gwt.dev.shell.BrowserChannel.reactToMessagesWhileWaitingForReturn(BrowserChannel.java:1714) 
at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:165)  
at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:120)  
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:507) 
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:264)  
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91) 
at com.google.gwt.core.client.impl.Impl.apply(Impl.java)  
at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:188) 
at sun.reflect.GeneratedMethodAccessor131.invoke(Unknown Source)  
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
at java.lang.reflect.Method.invoke(Method.java:597)  
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)  
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71) 
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157)  
at com.google.gwt.dev.shell.BrowserChannel.reactToMessages(BrowserChannel.java:1669)  
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:401) 
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:222)  
at java.lang.Thread.run(Thread.java:619) 

1 - ben de anlamak i History.newItem kullandığınızda() i onValueChange() numaralı telefonu arayın. Öyleyse neden işe yaramadı?

2 - Sınıf geçmişi statik mi? Bu yüzden her zaman geçmek zorunda değilim; ve başvurumun herhangi bir yarışmasında bunu söyleyebilir miyim? senin changePage üzerinde

+0

Ne çalışmıyor? History.addValueChangeHandler adlı kullanıcıyı çağırıp Profil widget'ınızı aktardınız mı? –

+0

Ohh üzgünüm ... biraz yorgunum! Kod kopyalamak ve yapıştırmak tamamen yanlıştır (başka bir örnek). Şimdi ben doğru olanı ile konu güncelledi :) – markzzz

cevap

1

() metodu, tartışmadan belirteç değişkeni kullanmayı deneyin:

public void changePage (Dize jetonu)
{
if ("daire" .equals (belirteç)) {.. .}
başka {...} bir istisna vardı fark ettim
}

daha hiç ... nerede bu istisna oldu? (kod satırı ..)

+0

tüm hata kodunu ekledi :) Yardımlarınız için teşekkürler! – markzzz

+0

Oh lanet olası bir aptal :) Bir apartman hatası oldu ... – markzzz

+0

iyi, yea ... chekc line 24 Apartment.java ve muhtemelen cevabı alırsınız :) – Diogo