Jabber Smack API を使用してチャット アプリケーションを作成しました。(「Gajim」という名前の別のアプリから) ファイルを正常に受信していますが、アップロードは数秒で失敗します。「交渉中」の転送ステータスの後、「エラー」ステータスが表示されます。
「完全修飾」jabber ID を指定してこのエラーを修正しましたが、別の (Gajim) クライアントからの転送を受け入れた後、転送が「ネゴシエーション ストリーム」で無期限に停止します。
私は私のswingWorkerクラスに次のコードを持っています:
OutgoingFileTransfer transfer;
@Override
public Void doInBackground() {
transfer = manager.createOutgoingFileTransfer("vedant1811@jabber.org/Gajim");
File uploadFile = fileChooser.getSelectedFile();
try {
transfer.sendFile(uploadFile, "test");
} catch (XMPPException ex) {
System.out.println("sendFile Error");
ex.printStackTrace();
}
while (!transfer.isDone()) {
if (transfer.getStatus().equals(Status.error)) {
transferLabel.setText("ERROR!!! " + transfer.getError());
} else {
transferLabel.setText("Uploading File: " + uploadFile.getName()
+ " STATUS: " + transfer.getStatus());
fileProgressBar.setValue((int) (100 * transfer.getProgress()));
}
try {
Thread.sleep(500);
} catch (InterruptedException ex) {
System.out.println("thread.sleep error");
ex.printStackTrace();
}
}
return null;
}