مشكلة cxml PunchoutSetupRequest في Struts2... أثناء تلقي الطلب

StackOverflow https://stackoverflow.com/questions/5348860

  •  27-10-2019
  •  | 
  •  

سؤال

أنا أستخدم servlet لتلقي rquest في Struts2 لوحدة التثقيب cxml، وسيتم إرسال مستند xml مع الطلب في الدفق وقد استخدمته request.getInputStream() و request.getReader() لتلقي ولكن عندما يصل الطلب إلى servlet الخاص بي من نظام العميل البعيد inputSteram.read() ترجع -1 ولكن req.getContentLength() إرجاع طول سلسلة XML من كائن الطلب ....

كيف يمكن أن أتخلص من هذه المشكلة...؟فهل هناك طريقة أخرى لتنفيذ هذه العملية..؟

ملحوظة: نفس servlet يعمل في بيئة غير الدعامات.......!

هل كانت مفيدة؟

المحلول

تم حلها :إذا كنت تستخدم inputStream في srvlet لقراءة تدفق القيمة، فمن غير المفترض أن تستخدم Request.getParameter()....قبل الحصول على قيمة الدفق إلى InputStream من خلال req.getInputStream()...

السابق:

الطريقة الصحيحة -

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());
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top