مشكلة cxml PunchoutSetupRequest في Struts2... أثناء تلقي الطلب
سؤال
أنا أستخدم 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());
لا تنتمي إلى StackOverflow