2010-11-19 96 views
0
 
public interface LoginService extends RemoteService { 
     public static final String SERVICE_URI = "/login"; 
     public static class Util { 
      public static LoginServiceAsync getInstance() { 

       LoginServiceAsync instance = (LoginServiceAsync) GWT.create(LoginService.class); 
       ServiceDefTarget target = (ServiceDefTarget) instance; 
       target.setServiceEntryPoint(GWT.getModuleBaseURL() + SERVICE_URI); 
       return instance; 
      } 
     } 
     public boolean userIsValid(Map loginData); 
     } 

和Entry類是GWT中控制失敗的原因是什麼?

 
public void onModuleLoad() { 


     final LoginServiceAsync loginService = (LoginServiceAsync)GWT.create(LoginService.class); 
     ServiceDefTarget endpoint = (ServiceDefTarget)loginService; 
     String moduleRelativeURL = GWT.getModuleBaseURL()+"login"; 
     endpoint.setServiceEntryPoint(moduleRelativeURL); 
     this.setLoginPanel(); 
     final AsyncCallback callback = new AsyncCallback() 
     { 

     public void onSuccess(Object result) { 

      // take the result coming from the server 
      boolean ok = Boolean.valueOf(result.toString()).booleanValue(); 
      if(ok) 
      { 

       MessageBox.alert("Success", "Successfully logged in!"); 
      } 
      else 
      { 

       MessageBox.alert("Invalid", "Wrong username or password"); 
      } 
     } 

     public void onFailure(Throwable caught) { 
      MessageBox.alert("Error", "Error while logging in"); 
     } 
     }; 
     loginButton = new Button("Login"); 
     loginButton.addListener(new ButtonListenerAdapter() { 
     public void onClick(Button button, EventObject e) { 
      Map loginData = getUserData(formPanel.getForm()); 
      loginService.userIsValid(loginData, callback); 
     } 
     }); 
     formPanel.addButton(loginButton); 
     loginPanel.setBorder(false); 
     loginPanel.setPaddings(5); 
     loginPanel.add(formPanel); 
     RootPanel.get().add(loginPanel); 
    } 


這裏是服務器實現類

 
public class LoginServiceImpl extends RemoteServiceServlet implements LoginService { 
     public boolean userIsValid(Map loginData) 
    { 
     boolean accepted = false; 
     String name = loginData.get("userName").toString(); 
     String pswd = loginData.get("pswd").toString(); 
     if(name.equals("yugal") && pswd.equals("yugal")) 
     { 

     accepted = true; 
     } 
     else 
     { 

      accepted = false; 
     } 
     return accepted; 
    } 
} 


這裏的web.xml

 

     LoginService 
     org.arosys.server.LoginServiceImpl 
    

    
     LoginService 
     /login 
    


控制將要失敗(Throwable抓到)的方法,爲什麼? 有什麼問題?

+0

有任何我們的堆棧跟蹤? – z00bs 2010-11-23 10:49:16

回答

0

沒有任何代碼的服務實現和沒有堆棧跟蹤這是不可能告訴。請給我們提供一些代碼和拋出的異常?

Here關於如何處理異常的一些信息。

相關問題