2009-05-29 18 views
0

私はGWTプロジェクトに取り組んでおり、いくつかの無効なリモートサービスがありますが、クライアント側ではonFailure()メソッドを起動することになります。何も例外がスローされず、期待される動作がバックエンドで観察されます。何がうまくいかないのか分かりません。GWT Voidリモートサービスは一見何の理由でも失敗する

インタフェースと実装...

コードを呼び出す
@RemoteServiceRelativePath("DeleteSearchService") 
public interface DeleteSearchService extends RemoteService { 
    /** 
    * Utility class for simplifying access to the instance of async service. 
    */ 
    public static class Util { 
     private static DeleteSearchServiceAsync instance; 
     public static DeleteSearchServiceAsync getInstance(){ 
      if (instance == null) { 
       instance = GWT.create(DeleteSearchService.class); 
      } 
      return instance; 
     } 
    } 

    public void delete(SearchBean search); 
} 

public interface DeleteSearchServiceAsync { 
    public void delete(SearchBean bean, AsyncCallback<Void> callback); 
} 

public class DeleteSearchServiceImpl extends RemoteServiceServlet implements DeleteSearchService { 

    private static final long serialVersionUID = 1L; 

    @Override 
    public void delete(SearchBean search) { 
     try { 

      Connection conn = SQLAccess.getConnection(); 
      String sql = "DELETE FROM `searches` WHERE `id`=?"; 

      PreparedStatement ps = conn.prepareStatement(sql); 
      ps.setInt(1, search.getSearchId()); 

      ps.execute(); 

      sql = "DELETE FROM `searchsourcemap` WHERE `search-id` = ?"; 

      ps = conn.prepareStatement(sql); 
      ps.setInt(1, search.getSearchId()); 

      ps.execute(); 

      return; 

     } catch (Exception e) { 
      // TODO Log error 
      e.printStackTrace(); 
     } 
    } 
} 

私はコードの500行のように投稿するためのジャークだが、知っている...

private class DeleteListener implements ClickListener { 
     public void onClick(Widget sender) { 
      DeleteSearchServiceAsync dss = DeleteSearchService.Util.getInstance(); 

      SearchBean bean = buildBeanFromGUI(); 

      dss.delete(bean, new AsyncCallback<Void>(){ 

       //@Override 
       public void onFailure(Throwable caught) { 
        // TODO log 
        SearchNotDeleted snd = new SearchNotDeleted(); 
        snd.show(); 
       } 

       //@Override 
       public void onSuccess(Void result) { 
        SearchDeleted sd = new SearchDeleted(); 
        sd.show(); 
        searchDef.getParent().removeFromParent();     
       } 

      }); 
     } 
    } 

:ここでは、関連するコードがあります私は昨日からこれを見つめていて、どこが間違っているのか分からない。多分目の第二セットは...

おかげで、私は怖い ブライアン

+0

AsyncCallbackのonFailureメソッドに渡されるcatchされた変数の値は何ですか? – Carnell

答えて

0

LGTMに役立つだろう。

ホストモードまたは本格的なブラウザを使用していますか?あなたは切り替えて、それが役立つかどうかを見ることができます。

また、//TODOを聞くのに役立ち、onFailureが呼び出されたときにGWT.logを実行すると役立ちます。

関連する問題