Struts2中的问题cxml PunchoutSetupRequest ...在接收请求时

时间:2011-03-18 06:38:17

标签: struts2 cxml

我正在使用servlet在Struts2中为cxml打孔模块重新获取rquest,xml文档将在流中发送请求,我使用request.getInputStream()request.getReader()来回复但是当请求到达我的时候来自远程客户机系统inputSteram.read()的servlet返回-1,但req.getContentLength()返回来自请求对象的xml字符串的长度....

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

注意: 同一个servlet在非struts环境中工作.......!

1 个答案:

答案 0 :(得分: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());