0

我正在使用 servlet 在 Struts2 中为 cxml 打孔模块接收 rquest,xml 文档将与流中的请求一起发送,我曾经使用request.getInputStream()request.getReader()接收,但是当请求从远程客户端系统到达我的 servlet 时inputSteram.read()返回 -1,但req.getContentLength()返回长度为来自请求对象的 xml 字符串....

我怎样才能摆脱这个问题......?有没有其他方法来执行这个过程..?

注意: 相同的 servlet 可以在非 struts 环境中工作......!

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

以下方法会导致 ISSUE:

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 回答