【问题标题】:java.lang.IllegalStateException: getInputStream() has already been called for this request + Struts2 and JSONjava.lang.IllegalStateException: getInputStream() 已经为此请求调用 + Struts2 和 JSON
【发布时间】:2012-11-09 13:57:07
【问题描述】:

我收到以下错误: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 对象冲突。

【问题讨论】:

  • 发布更多详情。你的班级,你的带有 JSON 调用的 JSP...

标签: json struts2


【解决方案1】:

我假设您使用的是 Struts 的 2.x 版本,我遇到了同样的问题并发现了 Struts 的一个现有错误 - explained here

实际上,任何 RequestAware 或 SessionAware 的操作都会自动绑定会话和请求。我从 action 中删除了我的 request getter,一切都开始正常了。

【讨论】:

  • 感谢 Ashish,我已经实施了同样的解决方案,它也对我有用。感谢您的建议。
猜你喜欢
  • 2013-07-21
  • 2011-11-11
  • 2012-04-16
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 2020-01-08
  • 2012-12-14
  • 1970-01-01
相关资源
最近更新 更多