0

request.getInputStream() サーブレットを使用してStruts2のcxmlパンチアウトモジュールのリクエストを受信すると、xmlドキュメントがストリーム内のリクエストとともに送信され、受信するために使用しrequest.getReader()ましたが、リクエストがリモートクライアントシステムからサーブレットにヒットするとinputSteram.read()-1がreq.getContentLength()返されますが、リクエストオブジェクトからのxml文字列...

この問題をどのように乗り越えることができますか...?このプロセスを実行する他の方法はありますか..?

注: 同じサーブレットが非ストラット環境で機能します.......!

4

1 に答える 1

1

解決済み:srvletでinputStreamを使用して値ストリームを読み取る場合、req.getInputStream()を介してStream値をInputStreamに取得する前にRequest.getParameter()....を使用することは想定されていません。

元:

正しい-方法

InputStream in=req.getInputStream();
  StringBuffer xmlStr=new StringBuffer();
    int d;
    while((d=in.read()) != -1){
              xmlStr.append((char)d);
    }
    System.out.println("xmlStr1--"+xmlStr.toString());

以下の方法で問題が発生します。

String str = req.getParameter("SOMETEXT");

InputStream in=req.getInputStream();
  StringBuffer xmlStr=new StringBuffer();
    int d;
    while((d=in.read()) != -1){
              xmlStr.append((char)d);
    }
    System.out.println("xmlStr1--"+xmlStr.toString());
于 2011-03-18T12:39:10.747 に答える