Проблема cxml PunchoutSetupRequest в Struts2… при получении запроса

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

  •  27-10-2019
  •  | 
  •  

Вопрос

я использую сервлет для получения rquest в Struts2 для модуля cxml punchout, xml-документ будет отправлен с запросом в потоке, и я использовал request.getInputStream() и request.getReader() для получения, но когда запрос попадает на мой сервлет из удаленной клиентской системы inputSteram.read() возвращает значение -1 , но req.getContentLength() возвращает длину xml-строки из объекта запроса....

Как я могу избавиться от этой проблемы ...?есть ли какой-нибудь другой способ осуществить этот процесс ..?

примечание: тот же самый сервлет работает в non-распорки среды.......!

Это было полезно?

Решение

Решаемая :Если вы используете 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