JSONオブジェクトを返すサーブレットがあります。このサーブレットを別のJavaプロジェクトで使用したいと思います。私は私に結果を取得し、この方法を持っている:JSONを返すサーブレット:受信時の混乱
public JSONArray getSQL(String aServletURL)
{
JSONArray toReturn = null;
String returnString = "";
try
{
URL myUrl = new URL(aServletURL);
URLConnection conn = myUrl.openConnection();
conn.setDoOutput(true);
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String s;
while ((s = in.readLine()) != null)
returnString += s;
in.close();
toReturn = new JSONArray(returnString);
}
catch(Exception e)
{
return new JSONArray();
}
return toReturn;
}
これはかなり意志を動作しますが、私が直面しています問題は以下の通りです:私はいくつかの要求を同時に行うと 、結果がごちゃ混ぜと私は時々取得します送信したリクエストと一致しないレスポンス。
私は、私が応答を返す方法に関連していると思われます。Readerは接続のInputStreamからStringを読み込みます。
どのように私は1つの要求 - > 1つの対応する応答を得ることができますか? 私のサーブレットからJSONオブジェクトを取得する良い方法はありますか?
乾杯、 ティム
これはAJAXコールですか?もしそうなら、responsestatusコードをチェックしていますか? – kosa
このメソッドをsynchronizedとしてマークします。サーブレットをリクエストしている現在のプロジェクトのタイプ。 – adatapost
'toReturn'はメソッド内で決して宣言されません。だから私は推測する:グローバル変数 - >並行性の問題。それともコピー/貼り付けが悪いのですか? – Grooveek