当前位置: 首页 > 知识库问答 >
问题:

JAVAlang.IllegalStateException:已为此请求Struts2和JSON调用getInputStream()

钱星华
2023-03-14

我得到了以下错误:java。lang.IllegalStateException:在使用Struts2实现JSON时,已为此请求调用getInputStream()。例外情况:

org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: 
    java.lang.reflect.InvocationTargetException
        org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:230)
        org.apache.struts2.json.JSONWriter.process(JSONWriter.java:160)
        org.apache.struts2.json.JSONWriter.value(JSONWriter.java:126)
        org.apache.struts2.json.JSONWriter.write(JSONWriter.java:94)
        org.apache.struts2.json.JSONUtil.serialize(JSONUtil.java:115)
        org.apache.struts2.json.JSONResult.createJSONString(JSONResult.java:197)
        org.apache.struts2.json.JSONResult.execute(JSONResult.java:170)
        com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:374)
    ...........

java.lang.IllegalStateException: getInputStream() has already been called for this request


org.apache.catalina.connector.Request.getReader(Request.java:1242)
    org.apache.catalina.connector.RequestFacade.getReader(RequestFacade.java:506)
    javax.servlet.ServletRequestWrapper.getReader(ServletRequestWrapper.java:212)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)
    org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:210)
    org.apache.struts2.json.JSONWriter.process(JSONWriter.java:160)
    org.apache.struts2.json.JSONWriter.value(JSONWriter.java:126)
    org.apache.struts2.json.JSONWriter.add(JSONWriter.java:355)
    org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:215)
    org.apache.struts2.json.JSONWriter.process(JSONWriter.java:160)
    org.apache.struts2.json.JSONWriter.value(JSONWriter.java:126)
    org.apache.struts2.json.JSONWriter.write(JSONWriter.java:94)
    org.apache.struts2.json.JSONUtil.serialize(JSONUtil.java:115)
    org.apache.struts2.json.JSONResult.createJSONString(JSONResult.java:197)
    org.apache.struts2.json.JSONResult.execute(JSONResult.java:170)

.........

请帮助我解决这个错误,因为我一直在解决这个问题。我没有什么问题:我已经实现了ServletRequestAware,并使用它来获取userLocale。它是否与JSONWriter对象冲突。

共有1个答案

麻超
2023-03-14

我假设你正在使用2。在Struts的x版本中,我遇到了同样的问题,并发现了Struts存在的一个缺陷——这里解释

实际上,任何被请求的动作都是自动绑定会话和请求的。我从动作中删除了请求的getter,事情开始正常工作。

 类似资料:
  • 我有一个Jersey Web服务,需要解析与请求一起发送的一些json数据。 此服务生成以下异常: 我做了一些研究,表明不能在同一个请求上调用和。因此,似乎已经调用了一个实例。如果我没有给它打个明确的电话,这怎么可能呢?为了解决这个问题,我使用了方法 使用这种方法,我如何使用字节的int来获取json?

  • 问题内容: 我想将日志记录添加到Servlet中,因此我创建了Filter,该过滤器应显示请求并转到Servlet。但不幸的是,我遇到了例外: 因此,要解决此问题,我发现了Wrapper的解决方案,但它不起作用。我还能在代码中使用/更改什么?有任何想法吗? [MyHttpServletRequestWrapper] [MyFilter] 问题答案: 看起来restlet框架已经调用了Request

  • 我正在用Spring做一个项目,我有这个问题,我谷歌了错误信息,我找到了解决方案,甚至所有关于这个问题的帖子 有人能帮忙吗?

  • 问题内容: 我谷歌的错误消息 ,很多人说,这是因为后面的空格或换行,但在我的代码,没有一个空格或一个换行符。我在Linux上使用tomcat6。 根本原因 问题答案: 好的,你应该使用servlet而不是JSP,但是如果你确实需要…在页面顶部添加以下指令: 或者在jsp-config部分中,你的web.xml 此外flush/ close中OutputStream和返回完成时。

  • 我正在尝试使用以下代码段在浏览器中打开pdf文件: 我收到以下错误: 我还尝试使用以下方式关闭: 有人能帮我吗?

  • 我有一个包含表的JSP页面。加载页面时,将填充表。我还有一个每隔X秒的ajax调用,它必须刷新表内容。 加载时,按预期填充内容。但在ajax调用期间,它会失败,并出现以下错误: 我检查了这个问题上存在的问题,但没有什么好结果。我没有在代码中使用scriplets。 JSP代码: 控制器代码: