Проблема cxml PunchoutSetupRequest в Struts2 ... при получении запроса - PullRequest
0 голосов
/ 18 марта 2011

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

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

примечание: тот же сервлет работает в среде без структур .......!

1 Ответ

1 голос
/ 18 марта 2011

Решено: Если вы используете inputStream в srvlet для чтения потока значений, вы не должны использовать Request.getParameter () .... перед передачей значения Stream в InputStream через req.getInputStream () ...

Ex:

Правильно - метод

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());
...