1. 程式人生 > >遇到問題---org.apache.struts2.json.JSONWriter can not access a member of class

遇到問題---org.apache.struts2.json.JSONWriter can not access a member of class

啟動tomcat後 訪問某個action 跳轉到jsp是報錯 

org.apache.struts2.json.JSONWriter can not access a member of class

org.apache.struts2.json.JSONWriter can not access a member of class 
org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper 
with modifiers "public"

struts配置為json型別

<package name="super_admin"
extends="json-default" namespace="/superadmin"> 2 <action name="allAuthorities" class="edu.bjfu.action.AuthoritiesAction"> 3 <result type="json"></result> 4 </action> 5 </package>

報錯原因:

struts會將action中定義的一些變數序列化轉換成json格式,需要呼叫物件的一系列get方法(例子中呼叫

authorityServiceauthorities的get方法),並呼叫以上兩個變數的成員變數的get方法將其內容組成json格式。但是在序列化authorityService時,由於其成員變數中含有含有介面所以會報錯。

也就是說  我們在 對應action的 java檔案是不能 有自定義的介面 設定成 get的  

解決方法:

去掉對應action的 java檔案中的  介面  get  方法

或者 禁止get方法 的序列化

例如

  @JSON(serialize=false)
2     public AuthorityService getAuthorityService() {
3 return authorityService; 4 }