2011-06-14 10 views
0

내 코드에 문제가있어서 해결할 수없는 것 같습니다. 버튼을 제출할 때 java/GWT의 배열 목록에 고객 데이터를 추가하고 싶습니다.GWT/JAVA 잡히지 않은 예외가

내가 데이터를 추가하는 양식.

ok.addClickHandler(new ClickHandler() { 
     public void onClick(ClickEvent event) { 
      if (!voornaamTB.getText().equalsIgnoreCase("") && !achternaamTB.getText().equalsIgnoreCase("") && !emailTB.getText().equalsIgnoreCase("") && !geboortedatumTB.getText().equalsIgnoreCase("")) { 
       boolean addVG; 
       System.out.println(voornaamTB.getText()); 
       System.out.println(tussenvoegselTB.getText()); 
       System.out.println(achternaamTB.getText()); 
       System.out.println(emailTB.getText()); 
       System.out.println(geboortedatumTB.getText()); 
--> the error is generated here addVG = VGC.addVakantieganger(voornaamTB.getText(), tussenvoegselTB.getText(), achternaamTB.getText(), emailTB.getText(), geboortedatumTB.getText()); 
       if (addVG) { 
        Window.alert("Vakantieganger toegevoegd."); 
       } else { 
        Window.alert("Vakantieganger niet toegevoegd."); 
       } 
      } else { 
       voornaamTB.addStyleName("invalide-TextBox"); 
       tussenvoegselTB.addStyleName("invalide-TextBox"); 
       achternaamTB.addStyleName("invalide-TextBox"); 
       emailTB.addStyleName("invalide-TextBox"); 
       geboortedatumTB.addStyleName("invalide-TextBox"); 
      } 
     } 
    }); 

컨트롤러 클래스.

import java.util.ArrayList; 

import com.vakantievibes.client.domein.Vakantieganger; 

public class VakantiegangerController { 
    private String msg; 
    private ArrayList<Vakantieganger> vakantiegangers = new ArrayList<Vakantieganger>(); 

    public VakantiegangerController(){ 

    } 

@SuppressWarnings("static-access") 
public boolean heeftVakantieganger(String email) { 
    boolean result = false; 
    for (Vakantieganger v : vakantiegangers) { 
     if (v.getEmail().equalsIgnoreCase(email)){ 
      result = true; 
     } 
    } 
    return result; 
} 

public boolean addVakantieganger(String voornaam, String tussenvoegsel, String achternaam, String email, String geboortedatum) { 
    //boolean result = false; 

    //if (!heeftVakantieganger(email)) { 
     Vakantieganger v = new Vakantieganger(voornaam, tussenvoegsel, achternaam, email, geboortedatum); 
     vakantiegangers.add(v); 
     boolean result = true; 
     System.out.println("klant toegevoegd"); 
    //} 
     return result; 
    } 

} 

메소드 addVakantieganger를 사용하면 데이터를 arraylist에 추가해야합니다. 그러나 그것은 사실을 다시 형태로보고해야한다고 생각하지 않습니다. ! heeftVakantieganger (전자 메일)는 해당 사람이 이미 배열 목록에 있지만 검사 목적으로 사용하지 않는지 확인해야합니다.

이클립스에서 오류가 발생합니다.

14:17:03.207 [ERROR] [vakantie_vibes] Uncaught exception escaped 

com.google.gwt.event.shared.UmbrellaException: One or more exceptions caught, see full set in UmbrellaException#getCauses 
    at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:129) 
    at com.google.gwt.user.client.ui.Widget.fireEvent(Widget.java:124) 
    at com.google.gwt.event.dom.client.DomEvent.fireNativeEvent(DomEvent.java:116) 
    at com.google.gwt.user.client.ui.Widget.onBrowserEvent(Widget.java:172) 
    at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1321) 
    at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1277) 
    at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    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:167) 
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:326) 
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:207) 
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:132) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269) 
    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:214) 
    at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    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:167) 
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:281) 
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:531) 
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:352) 
    at java.lang.Thread.run(Thread.java:679) 
Caused by: java.lang.NullPointerException: null 
    at com.vakantievibes.client.GUI.FormToevoegenVakantieganger$8.onClick(FormToevoegenVakantieganger.java:153) 
    at com.google.gwt.event.dom.client.ClickEvent.dispatch(ClickEvent.java:54) 
    at com.google.gwt.event.dom.client.ClickEvent.dispatch(ClickEvent.java:1) 
    at com.google.gwt.event.shared.GwtEvent.dispatch(GwtEvent.java:1) 
    at com.google.web.bindery.event.shared.SimpleEventBus.doFire(SimpleEventBus.java:193) 
    at com.google.web.bindery.event.shared.SimpleEventBus.fireEvent(SimpleEventBus.java:88) 
    at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:127) 
    at com.google.gwt.user.client.ui.Widget.fireEvent(Widget.java:124) 
    at com.google.gwt.event.dom.client.DomEvent.fireNativeEvent(DomEvent.java:116) 
    at com.google.gwt.user.client.ui.Widget.onBrowserEvent(Widget.java:172) 
    at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1321) 
    at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1277) 
    at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    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:167) 
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:326) 
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:207) 
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:132) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561) 
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269) 
    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:214) 
    at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    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:167) 
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:281) 
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:531) 
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:352) 
    at java.lang.Thread.run(Thread.java:679) 
+0

왜 거기에'@ SuppressWarnings' 주석이 있습니까? 그것은 큰 깃발이며 조사해야합니다 : 거기에 호출 된 "정적"메서드는 무엇입니까? –

+0

또한 전체 스택 추적을 추가하십시오. –

+0

이클립스에서 개발 모드 콘솔의 오류 로그입니까? – Aegis

답변

3

모든 변수를 사용하기 때문에 VGC은 현재 null 일 수 있습니다.

하지만이 클래스 이름을 의심합니다. 내 첫 번째 추측은 유형 VGC이 서버 API의 일부이며 클라이언트 API가 아니거나 이러한 행을 따르는 것입니다.

+0

그것의 학교 프로젝트 및 일반적으로 공유 또는 서버 패키지에 있지만 이제는 클라이언트의 하위 패키지로 설치됩니다. – Aegis

+0

'System.out.println (VGC)'(또는 이전에 컴파일 오류가 발생하면'VGC.class')에 대해 무엇을 얻습니까? –

+0

VGC가 아직 초기화되지 않았기 때문에 올바른 VGC가있는 곳. – Aegis

4

NullPointerException이 표시됩니다. 이는 null이라는 참조를 사용 중이기 때문에 발생합니다. 귀하의 경우 이것은 표시 한 행의 필드 중 하나입니다.

디버거를 사용하여 해당 줄에 중단 점을 넣고 null의 필드를 검사합니다.

관련 문제