を:ブラックベリーのHttpConnectionのタイミングアウト、私は次のように解析するためのXMLファイルをつかむしようとしています
private void getAndParseXML(String _xmlurl) {
HttpConnection xmlcon = null;
InputStream input = null;
SAXParserFactory spf = null;
try {
xmlcon = (HttpConnection)Connector.open(_xmlurl, Connector.READ); // open connection to XML source
spf = SAXParserFactory.newInstance(); // set up xml parsers
input = xmlcon.openInputStream(); // set up input stream
SAXParser saxparser = spf.newSAXParser(); // create a new parser object
saxparser.parse(input, this); // parse operations start here
}
catch(IOException ex) {
System.out.println("IOException Caught:\t" + ex.getMessage()); // set a default item if any exception occurs with retreiving or parsing XML file
}
catch (SAXException ex) {
System.out.println("SAXException Caught:\t" + ex.getMessage());
ex.printStackTrace();
}
catch (IllegalArgumentException ex) {
System.out.println("IllegalArgumentException Caught:\t" + ex.getMessage());
ex.printStackTrace();
}
catch (ParserConfigurationException ex) {
System.out.println("ParserConfigurationException Caught:\t" + ex.getMessage());
ex.printStackTrace();
}
finally {
if (input != null) {
try {
input.close(); // attempt to close all connections
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (xmlcon != null) {
try {
xmlcon.close();
}
catch (IOException ex) {
ex.printStackTrace();
}
}
}
} // END ----------------------------------------------------------------------------
しかし、私は接続が12秒後にタイムアウトしたと言ってスローされた例外を取得します。これは、input = xmlcon.openInputStream();
行以降に実行されます。
この場合、捕捉されるのはIOExceptionであり、このメソッドが呼び出される前にアクティブなネットワーク接続が存在するかどうかを判断します。私は何か見落としてますか?
EDIT:説明のために、これはアプリケーションのネットワーク接続の最初のインスタンスになります。このコードブロックを実行する前に、XMLファイルの取得を試みる前に、接続が可能であることを確認するための簡単なテスト:
はい、URLはブラウザで開くことができます。私はあなたがBB Transportによって何を意味するのか分かりません。 –
私はBESで実行するように設定していません(デフォルトでない限り)。それは、セルアンテナまたはwi-fi経由のTCP/IPでなければなりません。このアプリケーションでは、接続が開かれる最初のインスタンスになります。 –
OK、DirectTCPまたはWiFi BB Transportsのみを使用しています。まあ、WifIでこれが動作しないようなものは見当たりませんが、DirectTCPにはいくつかの問題があるかもしれません(たとえば、プロバイダによっては、接続で送信されるデータの最大許容量を設定してトラフィックを制限する場合があります)。だから、私のアドバイスは、Wi-Fiの使用方法を見て、WiFi BB Transportだけを使って動作するようにすることです。 –