GWT Exception "Uncaught exception escaped"

computersport

Aktives Mitglied
Hallo Community,

Ich programmiere zurzeit ein Projekt mit Hibernate und GWT.

Ich komme zurzeit einfach nicht weiter ich bekomme andauernd den Fehler "Uncaught exception escaped"

Hier die Fehler Log:

21:52:12.029 [ERROR] [gui] Uncaught exception escaped
java.lang.NullPointerException: null
at ourProject.client.common.LoginUI$2.onClick(LoginUI.java:96)
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.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.ui.Widget.fireEvent(Widget.java:52)
at com.google.gwt.event.dom.client.DomEvent.fireNativeEvent(DomEvent.java:116)
at com.google.gwt.user.client.ui.Widget.onBrowserEvent(Widget.java:100)
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(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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(Unknown Source)

Hier der Aufruf des RPC's

Java:
callback = new AsyncCallback() {

			@Override
			public void onFailure(Throwable caught) {
				GWT.log(caught.toString());
			}

			@Override
			public void onSuccess(Object result) {
				GWT.log("Works fine!");
			}
			
		};
		
		// In diesem Button werden die RPC Methoden genutzt
		this.btLogin.addClickHandler(new ClickHandler() {
			@Override
			public void onClick(ClickEvent event) {
				txtUser.setText(useradmin.PruefungLogin("compi", "hallo").toString());
			}
		});


In diesen Klasse hab ich die Methode Implementiert:

UserAdminImpl:
Java:
package ourProject.server.RPCUser;

import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

import ourProject.client.User.UserAdmin;
import ourProject.server.HibernateUtil;
import ourProject.server.useradmin.User;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;


public class UserAdminImpl extends RemoteServiceServlet implements UserAdmin {

	@Override
	public Integer PruefungLogin(String Name, String Passwort) {

		Session session = HibernateUtil.getFactory().getCurrentSession();
		
		Name.toLowerCase();
		User user = (User) session.createCriteria(User.class)
		.add(Restrictions.naturalId()
				.set("Nick", Name)
		).uniqueResult();
		
		System.out.printf(user.getMailaddy(),user.getNick(),user.getPassword());

		if (user.getPassword() == Passwort) {
			session.close();
			GWT.log(Integer.toString(user.getUserId()));
			return user.getUserId();
		} else if (user.getPassword() == null) {
			GWT.log("das ergebnis ist null");
			session.close();
			return 10;
		}
		else {
			session.close();
			return 10;
		}
	}

Und das ist das sind die beiden Interface die noch benötigt werden:

Java:
package ourProject.client.User;

import com.google.gwt.user.client.rpc.RemoteService;

public interface UserAdmin extends RemoteService {
	
	Integer PruefungLogin(String Name, String Passwort);
	
}

Java:
package ourProject.client.User;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface UserAdminAsync {
	
	public void PruefungLogin(String Name, String Passwort, AsyncCallback<Integer> callback);

}

Hat irgendwer ne Idee wo das Problem liegt?

greetz

compi

PS.: Ich glaub ich bin im Falschen teil des Forums kann das vielleicht nen Mod verschieben?
 
Zuletzt bearbeitet:
die Fehlermeldung lässt vermuten, dass

entweder
txtUser.
useradmin
oder der Rückgabe wert der Methode
PruefungLogin("compi", "hallo")

null ist.

mach nicht soviel in einer Zeile. sonder speicher dir das ganze in geeignete Variablen und schau nach was daven null ist. z.B. mit if (x==null ) Prüfen und darin einen BraekPoint setzten
 
Hat vermutlich nicht direkt was mit dem Thema zu tun, aber
UserAdminImpl:
[JAVA=29] if (user.getPassword() == Passwort) {
[/code]

Hier wäre wohl ein Vergleich mit equals angebracht.
 
Ich habe jetzt die Lösung für dieses Problem gefunden. Ich musste von dem Service einen ProxyObjekt erzeugen
und dann einen Pfad auf diesen setzen.

Hiermit erzeuge ich ein Proxy-Objekt:
Java:
UserAdminAsync service = (UserAdminAsync) GWT
	.create(UserAdmin.class);

Und hiermit ermittle ich den Pfad:

Java:
	ServiceDefTarget serviceDef = (ServiceDefTarget) service;
	serviceDef.setServiceEntryPoint(GWT.getModuleBaseURL()
			+ "userService");

Falls jemand ebefalls dieses Problem hatte kann ihm evtl. damit geholfen werden.

PS.: falls nen Mod zeit hat könnte der den Titel des Beitrags in "java.lang.NullPointerException: null" ändern dann würd offentsichtlicher worum es geht.

greetz

Compi
 

Zurück
Oben