2012-10-21 89 views
0

我需要從WAR目錄下的xml文件中讀取數據。
我使用RequestBuilder來創建GET請求。 它看起來像這樣:gwt - servlet路徑+ url

RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET,"customerRecord.xml"); 
    try { 
     requestBuilder.sendRequest(null, new RequestCallback() { 
      public void onError(Request request, Throwable exception) { 
       requestFailed(exception); 
      } 
      public void onResponseReceived(Request request,Response response) { 
       renderXML(response.getText()); 
      } 
     }); 
    } catch (RequestException ex) { 
     requestFailed(ex); 
    } 

現在,事情是,我不希望加載的所有數據。我想發送一個參數告訴服務器要帶哪個部分(比方說 - 多少行數據),然後重寫servlet的doGet方法並處理參數。
我有2個問題:
1)我該如何聲明servlet的路徑? servlet和請求之間的連接在哪裏?
2)我在RequestBuilder(而不是「customerRecord.xml」)的url中寫什麼?我需要參考那裏的servlet,或者我可以保持它像

回答

1

可能是你的意思是GWT服務?

您需要創建2個接口 - Service和ServiceAsync以及服務器包中的服務實現(與客戶端包的級別相同)。在你的modeule.xml寫

@WebServlet(name="YourService", urlPatterns={"/%module%/YourService"}) 
public class YourServiceImpl extends RemoteServiceServlet implements YourService 

:然後定義執行情況的servlet(在我的JBoss 7.1它只是標註在老版本的servlet映射。)

<servlet path="/YourService" class="org.name.YourServiceImpl"/> 

,並在結束時,您可以撥打從您的代碼

YourService.App.getInstance().getSomething(new AsyncCallback<Collection<Something>>() { 
     @Override 
     public void onFailure(Throwable caught) { 
      new MessagePopup("Error: " + caught.getMessage()).center(); 
     } 

     @Override 
     public void onSuccess(Collection<Something> result) { 

     } 
    }); 

接口這個服務你可以從你心愛的IDE創建。它更簡單)

有人認爲仍然困擾着我 - 我無法指定另一個模塊中的servlet的路徑。

+0

找到解決方案http://stackoverflow.com/questions/5284190/gwt-calling-rpc-service-inside-another-module – ainlolcat