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

发布于 2024-10-23 21:41:57 字数 394 浏览 1 评论 0原文

我正在使用 servlet 在 Struts2 中接收 cXML 打孔模块的请求,XML 文档将随流中的请求一起发送,并且我使用了 request.getInputStream()request.getReader()< /code> 接收,但当请求从远程客户端系统到达我的 servlet 时 inputSteram.read() 返回 -1 ,但 req.getContentLength() 返回 XML 的长度来自请求对象的字符串。

我怎样才能摆脱这个问题?还有其他方法可以执行此过程吗?

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

I am using servlet to receive request in Struts2 for cXML punchout module, the XML document will be sent with request in stream and I had used request.getInputStream() and request.getReader() to receive but when the request hits my servlet from remote client system inputSteram.read() returns -1 , but req.getContentLength() returns length of the XML string from request object.

How can I get over from this issue? Is there any other way to carry out this process?

note: the same servlet works in non-struts environment.......!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

⊕婉儿 2024-10-30 21:41:57

已解决:如果您在 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());

以下方法会导致问题:

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

Solved : If you are using inputStream in srvlet to read value stream, you are not suppose to use Request.getParameter().... before getting Stream value to InputStream through req.getInputStream()...

Ex:

Correct-- method

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

Below method will cause 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());
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文