----------- ------- CODE(CLIENT)
package com.vin.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.PasswordTextBox; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.TextBox; public class HelloWorld实现EntryPoint { private UserServiceAsync UserService =(UserServiceAsync)GWT.create(UserService.class); public void onModuleLoad(){ Button click = new Button(Click Here); 标签名=新标签(输入名称); Label passwrd = new Label(Enter Password); final TextBox t_name = new TextBox(); final PasswordTextBox t_passwrd = new PasswordTextBox(); click.addClickHandler(new ClickHandler(){ public void onClick(ClickEvent ev){ String temp_user = t_name.getText(); String temp_pass = t_passwrd.getText() ; UserService.loginuser(temp_user,temp_pass,new AsyncCallback< String>(){ public void onFailure(Throwable catch){ Window.alert(请输入有效的详细信息); } public void onSuccess(String result){ Window.alert(Welcome); // Window.open(127.0.0.1:8888/ ExWid.html?gwt.codesvr = 127.0.0.1:9997,Dem,null); } }); } }); RootPanel.get()。add(name); RootPanel.get()。add(t_name); RootPanel.get()。add(passwrd); RootPanel.get()。add(t_passwrd); RootPanel.get()。add(click); } }----------- ------------------客户界面(1)
package com。 vin.client; import com.google.gwt.user.client.rpc.RemoteService; public interface UserService extends RemoteService { public String loginuser(String username,String password); }---------------- ------------ CLIENT ASYNC INTERFACE
package com.vin.client; import com.google.gwt.user.client.rpc.AsyncCallback; public interface UserServiceAsync { public void loginuser(String username,String password,AsyncCallback< String> callback); }---------------- ----------客户端服务器(SERVER)的实现...数据库连接
package com.vin 。服务器; import java.sql.DriverManager; import java.sql.ResultSet; import com.google.gwt.dev.generator.ast.Statement; import com.google.gwt.user.client.Window; import com.google.gwt.user.server.rpc.RemoteServiceServlet; import com.vin.client.UserService; public class UserServiceImpl extends RemoteServiceServlet implements UserService { private static final long serialVersionUID = 1L; public String loginuser(String username,String password){ try { java.sql.Connection con = null; Class.forName(org.hsqldb.jdbcDriver); con = DriverManager.getConnection(jdbc:hsqldb:hsql:// localhost /,SA,); 语句st =(Statement)con.createStatement(); ResultSet rs =((java.sql.Statement)st).executeQuery(select username,lgfrm); String user = rs.getString(1); String pass = rs.getString(2); if(username.equals(user)&& password.equals(pass)){ Window.alert(success); } } catch(异常ae){} returnsuccess; } }----------- -------我尝试验证用户的例外列表
15:22:54.583 [错误] [ helloworld]未捕获的异常转义 com.google.gwt.event.shared.UmbrellaException:一个或多个异常被捕获,请参阅UmbrellaException中的完整集#getCauses com.google.gwt.event .shared.HandlerManager.fireEvent(HandlerManager.java:129)在com.google.gwt.user.client.ui.Widget.fireEvent(Widget.java:129)在com.google.gwt .event.dom.client.DomEvent.fireNativeEvent(DomEvent.java:116)在com.google.gwt.user.client.ui.Widget.onBrowserEvent(Widget.java:177) at com .google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1351)
还有更多这样的。 p>
解决方案com.google.gwt.user.client.Window 类提供对浏览器窗口的方法,属性和事件的访问。所以你不能在Serverside中使用它。当需求满足时,您可以返回String success,否则返回异常,以便它被 onFailure 在客户端。
I have built my first GWT app. giving no compilation errors neither run-time errors. However, when the application is loaded into the browser (using Interner Explorer) and I enter username and password field to validate the user, it throws exceptions. Using GWT-RPC method, entire code and interfaces are provided. I'm using HSQL for database connection(back end).
------------------CODE (CLIENT)
package com.vin.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.PasswordTextBox; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.TextBox; public class HelloWorld implements EntryPoint{ private UserServiceAsync UserService = (UserServiceAsync) GWT.create(UserService.class); public void onModuleLoad() { Button click=new Button("Click Here"); Label name=new Label("Enter Name"); Label passwrd=new Label("Enter Password"); final TextBox t_name=new TextBox(); final PasswordTextBox t_passwrd=new PasswordTextBox(); click.addClickHandler(new ClickHandler() { public void onClick(ClickEvent ev) { String temp_user=t_name.getText(); String temp_pass=t_passwrd.getText(); UserService.loginuser(temp_user, temp_pass, new AsyncCallback<String>() { public void onFailure(Throwable caught) { Window.alert("Please enter valid details"); } public void onSuccess(String result) { Window.alert("Welcome"); // Window.open("127.0.0.1:8888/ExWid.html?gwt.codesvr=127.0.0.1:9997", "Dem", null); } }); } }); RootPanel.get().add(name); RootPanel.get().add(t_name); RootPanel.get().add(passwrd); RootPanel.get().add(t_passwrd); RootPanel.get().add(click); } }-----------------------------CLIENT INTERFACE (1)
package com.vin.client; import com.google.gwt.user.client.rpc.RemoteService; public interface UserService extends RemoteService { public String loginuser(String username, String password); }----------------------------CLIENT ASYNC INTERFACE
package com.vin.client; import com.google.gwt.user.client.rpc.AsyncCallback; public interface UserServiceAsync { public void loginuser(String username, String password, AsyncCallback<String> callback); }--------------------------IMPLEMENTATION OF CLIENT USERSERVICE (SERVER)...DATABASE CONNECTION
package com.vin.server; import java.sql.DriverManager; import java.sql.ResultSet; import com.google.gwt.dev.generator.ast.Statement; import com.google.gwt.user.client.Window; import com.google.gwt.user.server.rpc.RemoteServiceServlet; import com.vin.client.UserService; public class UserServiceImpl extends RemoteServiceServlet implements UserService{ private static final long serialVersionUID = 1L; public String loginuser(String username,String password) { try { java.sql.Connection con = null; Class.forName("org.hsqldb.jdbcDriver"); con = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/", "SA", ""); Statement st=(Statement) con.createStatement(); ResultSet rs=((java.sql.Statement) st).executeQuery("select username,password from lgfrm"); String user=rs.getString(1); String pass=rs.getString(2); if(username.equals(user) && password.equals(pass)) { Window.alert("success"); } } catch (Exception ae) {} return "success"; } }------------------THE EXCEPTION LIST WHILE I'M TRYING TO VALIDATE A USER
15:22:54.583 [ERROR] [helloworld] 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:129) at com.google.gwt.event.dom.client.DomEvent.fireNativeEvent(DomEvent.java:116) at com.google.gwt.user.client.ui.Widget.onBrowserEvent(Widget.java:177) at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1351)
And many more like these.
解决方案com.google.gwt.user.client.Window class provides access to the browser window's methods, properties, and events. So you can't use it in Serverside. Better you return String "success" when requirement meets, else return Exception, so that it is caught by onFailure on clientside.
更多推荐
运行GWT应用程序时异常
发布评论