私は非常に大きなXMLファイルからデータを読み込まなければならないGWTを使って最初のJavaアプリケーションを構築しています。ファイル内の情報の要求を送信しようとするときに問題が発生しています。ファイルのサイズやセマンティクスと関係があるかどうかはわかりません。私のプログラムでは、私は次のようしている:GWTを使用して非常に大きなローカルXMLファイルを読む
static final String xmlurl = "filename.xml";
String xmlData;
...
public void onModuleLoad() {
requestData(xmlurl);
if(xmlData.equals("Error")){
// display error message
return;
} else {
// display the xml
}
void requestData(String url){
final int STATUS_CODE = 200;
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);
try {
builder.setTimeoutMillis(2000);
builder.sendRequest(null, new RequestCallback() {
public void onError(Request request, Throwable exception) {
xmlData = "Error"
}
public void onResponseReceived(Request request, Response response) {
if (STATUS_CODE == response.getStatusCode()){
xmlData = response.getText();
} else {
xmlData = "Error";
}
}
}
} catch (RequestException e) {
xmlData = "Error";
}
}
私は、コードを書き直したので、私はいくつかのタイプミスをしたかもしれないが、実際のアプリケーションのためにそれをコンパイルし、実行します。問題は、XMLを表示しようとするとnullpointer例外が発生し、xmlDataは決して割り当てられないということです。私はそれが "エラー"またはXMLテキストを格納するのを待っていたwhileループを置こうとしましたが、変数は決して割り当てられませんでした。私はXMLファイルを自分のプロジェクトのwarディレクトリに保存してあり、そのファイルを見つけることができるようです。私は同様の例をオンラインで検索しましたが、すべてが私がやろうとしているものよりも少し複雑に思えましたが、私はサーブレットや設定の変更が必要かどうかわかりません。 Stringを読み込むには大きすぎます。どんな助けもありがとうございます。ありがとう。
ヘルパーメソッドありがとう!私はそれを試してみることを確認します – Ahmed
私はあなたのヘルパーメソッドを試して、それは完全に働いた。これは、これらの種類のサーバー呼び出しでAsyncCallbackを使用する必要があると仮定しています。すべてのあなたの助けをありがとう、私は本当にそれを感謝します! – Ahmed
いいえ、AsyncCallbackの使用は必須ではありませんが、このインターフェイスはこのような使用に非常に適しています。もちろん、さまざまな失敗のケースを区別するために、異なるものを使用する方法を設計することはできますが、私のアプリケーションでは意味がありませんでした。 –