日期:2014-05-16 浏览次数:20500 次
最近的SSH项目中集成了struts2-json-plugin用以实现JQUERY的AJAX调用,但调用时会出现下列异常信息,现提供异常原因及解决方案。
?? ?异常:
org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: java.lang.IllegalAccessException: Class org.apache.struts2.json.JSONWriter can not access a member of class org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper with modifiers "public"
?
?? ?出现原因:
?? ?1、在返回JSON字符串的类中,其成员变量如果是由Spring注入的并提供了getter方法,则抛此异常。
?? ?2、懒加载导致。
?? ?
?? ?解决方案:
?? ?1、Spring注入的方法只提供setter方法,不提供getter方法。
?? ?2、排除hibernateLazyInitializer属性。在配置中把hibernateLazyInitializer属性除外:
?? ?<result name="returnValue" type="json">
?? ? ? ?<param name="excludeProperties">.*hibernateLazyInitializer</param>
?? ?</result>