遇到問題---org.apache.struts2.json.JSONWriter can not access a member of class
阿新 • • 發佈:2019-02-08
啟動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方法(例子中呼叫 authorityService和authorities的get方法),並呼叫以上兩個變數的成員變數的get方法將其內容組成json格式。但是在序列化authorityService時,由於其成員變數中含有含有介面所以會報錯。
也就是說 我們在 對應action的 java檔案是不能 有自定義的介面 設定成 get的
解決方法:
去掉對應action的 java檔案中的 介面 get 方法
或者 禁止get方法 的序列化
例如
@JSON(serialize=false) 2 public AuthorityService getAuthorityService() {3 return authorityService; 4 }