遇到问题---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     }


你可能感兴趣的:(tomcat,struts,Class,Access,action)