SOAPメッセージを送信し、応答を取得してから読み取るTCP / IPソケットを実行しています。
問題はそのシナリオにあります。最初はすべて問題なく、メッセージを送信し、swingworker を使用して応答を受け取ります。ソケットを閉じて再度接続しようとすると、swing ワーカーをブール値で停止します。再度接続するとスレッドが実行されますが、SOAP メッセージを送信してもソケットから出力が得られませんが、その時点でデバッグを行ってコードにステップダウンすると、応答が返されますそして出力!なぜそれが起こるのですか?
これが私のコードです:
protected Object doInBackground() throws Exception {
Integer result = 1;
while (true) {
if (startReading && !this.server.isSocketClosed()) {
// send the SOAP Message based on which message is selected
SendSOAPRequestMessage();
//Thread.sleep(5);
String responseMessage = null;
try {
// get the response from the client/server
responseMessage = Utils.convertStreamToString(this.server);
System.out.println(responseMessage);
// give the message without the header + and check the content length and if the header is corrupted
fullMsg = decoder.DecodeSoapHeader(new String(responseMessage.getBytes("UTF-8")));
} catch (Exception ex) {
Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}