私は通常.net開発者です(私を傷つけないでください!)ので、私がここで犯した本当に愚かな間違いを許してください:)
xmlを受信して応答を返す.netで記述されたTCPリスナーがあります。loadUIを使用してテストをロードできるように、Groovyでクライアントを作成しようとしています。これが私がこれまでに持っているものです:
def s = new Socket("10.208.24.59", 9061);
s.withStreams { inStream, outStream ->
def reader = inStream.newReader()
def responseText = reader.readLine()
outStream << "Hello test server"
println "response = $responseText"
}
s.close();
私はEclipseでデバッグしていて、withStreams行にぶら下がっています。私が受け取るべきものは「メッセージはXMLではありませんでした」というメッセージです。これはtelnet経由でうまくいくことができます。
私が間違っていることについて何か考えはありますか?
更新 withStreamsクロージャーの代わりにこれを試しました:
def r = new BufferedReader(new InputStreamReader(s.getInputStream()));
def w = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
w.write("Hello test server 2");
w.flush();
println r.readLine();
w.flush();
w.close();
今はprintlnr.readLine()呼び出しにぶら下がっています
再度更新する
これは、リモートサービスがストリームを閉じていた(または、より正確には、閉じていなかった)方法に問題があったことが判明しました。.netとメインフレームの両方がそれを正しく処理していましたが、Groovyスクリプトは満足できませんでした。私はサービスを修正し、スクリプトは正常に実行されるようになりました。同様の問題に遭遇した他の人にとっては、覚えておく価値があります。