0

いくつかのサーブレットを備えた Tomcat アプリがあります。このアプリは、埋め込まれた Java アプレットと GWT Web ページを実行します。

問題は、別の要求が別のサーブレット要求 (別のサーブレット) で処理されている間に、Tomcat から一部のデータをフェッチする POST 要求がブロックされることです。

これは、データを取得するための私のアプレット コードです。

Integer code =  new Integer(FETCH_IMAGE); 
Serializable objs[] =  { code, username, id.getID(), id.getSeriesID(), id.getStudyID()   };
//URLConnection con =  postObjects(servletUrl, objs);
System.out.println("---->POST image request start...");
URLConnection con =  servletHttpConnection.postObjects(objs);
System.out.println("---->POST image request end...");
System.out.println("---->ObjectInputStream start...");
ObjectInputStream in = new ObjectInputStream( con.getInputStream());
System.out.println("---->ObjectInputStream end...");

//Read the value as an Object
System.out.println("---->Read stream for image start...");
Object obj = in.readObject();
System.out.println("---->Read stream for image end...");

Tomcat インスタンスが I/O を実行していると同時に、アプレットが上記のコードを実行してデータを取得しようとしています。また、「doPost」メソッドの開始時にログをダンプしましたが、リクエスト #1 が終了するまでそこに到達しません。私のアプレットは次の場所でブロックされています:

ObjectInputStream in = new ObjectInputStream( con.getInputStream());

この問題を回避する設計はできますか? または、なぜそこでブロックされているのですか? #1 が機能しているのに、Tomcat が私の要求 #2 に応答しないのはなぜですか?

4

0 に答える 0