分享好友 系统运维首页 频道列表

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

apache教程  2023-02-10 02:310

偶遇一个问题:org.apache.struts2.json.JSONWriter can not access a member of class 
org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper 
with modifiers "public"。困扰了半天,找到了解决方案,写写自己的一些理解。

action代码:

org.apache.struts2.json.JSONWriter can not access a member of class
 1 package edu.bjfu.action;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import javax.annotation.Resource;
 7 
 8 import org.apache.struts2.json.annotations.JSON;
 9 
10 
11 import com.opensymphony.xwork2.ActionSupport;
12 
13 import edu.bjfu.entity.Authority;
14 import edu.bjfu.service.AuthorityService;
15 
16 public class AuthoritiesAction extends ActionSupport{
17     private AuthorityService authorityService;
18     private List<Authority> authorities;
19 
20     public List<Authority> getAuthorities() {
21         return authorities;
22     }
23 
24     public void setAuthorities(List<Authority> authorities) {
25         this.authorities = authorities;
26     }
27     public AuthorityService getAuthorityService() {
28         return authorityService;
29     }
30 
31     @Resource(name="authorityService")
32     public void setAuthorityService(AuthorityService authorityService) {
33         this.authorityService = authorityService;
34     }
35     
36     public String execute() throws Exception {
37         authorities=authorityService.getAllAuthorities();
38         return SUCCESS;
39     }
40     
41 }
org.apache.struts2.json.JSONWriter can not access a member of class

 

 

配置文件代码:

1 <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>

ajax交互代码:

org.apache.struts2.json.JSONWriter can not access a member of class
 1 $(function(){
 2     $.post("superadmin/allAuthorities?dt="+new Date().getTime(),
 3         function(data){
 4             $("#authority").empty();
 5             var json = eval(data);
 6             for(var i=0;i<json.length;i++){
 7                 $("#authority").append("<option value='"+json[i].authorityId+"'>"+json[i].authorityName+"</option>");
 8             }
 9         },"json")
10 })
org.apache.struts2.json.JSONWriter can not access a member of class

这样每次在交互的时候就会发生以上错误。

主要原因:struts会将action中定义的一些变量序列化转换成json格式,需要调用对象的一系列get方法(例子中调用authorityService和authorities的get方法),并调用以上两个变量的成员变量的get方法将其内容组成json格式。但是在序列化authorityService时,由于其成员变量中含有含有接口所以会报错。

解决方案:

1)修改配置文件:指定序列化的根节点,这样data就是从authorities的根节点以下的数据,不需要用data.authorities

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

2) 修改java代码:让编译器不对authorityService序列化

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

3)此外貌似可以通过配置文件的excude和include来指定需要序列化的对象,我没有自己去试!

查看更多关于【apache教程】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
Hadoop中mapreduce运行WordCount程序报错Error: java.io.IOException: Type mismatch in key from map: expected o
这个问题是因为map的方法参数与继承mapper定义的参数类型不一致导致的,应该将Mapper的key参数类型设置成Object,就可以解决这个问题 

0评论2023-03-08965

[转]用apache反向代理解决单外网ip对应内网多个web主机的问题
用apache反向代理解决单外网ip对应内网多个web主机的问题  转载一个有独立外网IP,需内网服务器对外发布的例子,是应用apache虚拟主机的。来源地址:http://www.itshantou.com/Servers/web/06/10/44219.html    几年前开始在学校的服务器上建网站,那时

0评论2023-02-10583

Apache service named reported the following error(OS 10055)由于系统缓冲区空间不足或队列已满解决办法?
apache启动失败报错:The Apache service named reported the following error: AH00451: no listening sockets available, shutting down . The Apache service named reported the following error: (OS 10055)由于系统缓冲区空间不足或队列已满,不能执行

0评论2023-02-10403

struts布局管理---SiteMesh一个优于Apache Tiles的Web页面布局、装饰框架
1. SiteMesh的基本原理       一个请求到服务器后,如果该请求需要sitemesh装饰,服务器先解释被请求的资源,然后根据配置文件 获得用于该请求的装饰器,最后用装饰器装饰被请求资源,将结果一同返回给客户端浏览器。 2. 如何使用SiteMesh    这里以st

0评论2023-02-10726

linux 安装 apache2.2.31
 Linux下安装和配置Apache 概要:本文介绍在CentOS5.4 Linux中安装和配置Apache2.2.14,并且实现Apache和Tomcat6的整合。文章分为三部分,分别是删除系统自带的Apache、安装Apache2.2.14和配置Apache2.2.14。 文章中介绍的知识也可以在其它版本的Linux中

0评论2023-02-10408

apache下ab.exe使用方法。。 apache ab工具
自己在cmd中写了半天的路径也没有写对。。最后网上的一个哥们告诉我说没有共同语言了。。。毛线啊 差距确实很大!大能猫死panda早晚干掉你,叫你丫整天嘲讽我!比如我的ab.exe在D盘的wamp文件夹下apache文件夹下bin文件夹下。那么在cmd中可以这么写:"D:\wamp

0评论2023-02-10478

CentOS 下的apache服务器配置与管理
一、WEB服务器与Apache1、web服务器与网址2、Apache的历史3、补充http://www.netcraft.com/可以查看apache服务器的市场占有率同时必须注意的是ngnix,正处于强势增长的上升时期,大有和apache一争天下的感觉,真是后生可畏~~~二、Apache服务器的管理命令1、命

0评论2023-02-10950

apache 的FTPClient使用以及注意事项
      tomcat+apache+jk进行集群后,图片要进行共享,经过网上的搜索可以有多种方式实现。        一种是使用jcifs。jcifs可以实现网络***享文件的读写,但是前提是,文件必须共享,还要在同一个局域网内。所以如果电脑上禁止了文件共享的话,就

0评论2023-02-10427

apache错误02:安装完后,系统找不到指定的文件 No installed service named "Apache2"的解决办法
解决办法:在“开始 -〉运行”处输入 cmd 回车,转到apache的安装目录,然后进入bin 目录,即cd bin ,在这里敲入 apache.exe -k install 后回车,然后重启Apache 就OK了。

0评论2023-02-10851

Apache提示You don't have permission to access / on this server 解决
 ;建议针对/private/var/log/apache2/中error来看[Sun Jun 02 18:00:37.760853 2019] [core:error] [pid 1677] (13)Permission denied: [client 127.0.0.1:53454] AH00035: access to / denied (filesystem path ‘/Users/sf/Documents/phpstorm’) because

0评论2023-02-10912

windows Apache 配置支持HTTPS的SSL证书
在设置Apache + SSL之前, 需要做:安装Apache, 下载安装Apache时请下载带有ssl版本的Apache安装程序.并且ssl需要的文件在如下的位置:     [Apache安装目录]/modules/ mod_ssl.so    [Apache安装目录]/bin/ openssl.exe, libeay32.dll, ssleay32.dll, ope

0评论2023-02-10924

mysql_pconnect的水挺深,apache下的数据库长连接
  php的mysql持久化连接,美好的目标,却拥有糟糕的口碑,往往令人敬而远之。这到底是为啥么。近距离观察后发现,这家伙也不容易啊,要看apache的脸色,还得听mysql指挥。  对于做为apache模块运行的php来说,要实现mysql持久化连接,首先得取决于apache这个

0评论2023-02-10314

网页504超时 apache php
1. 修改apache 配置apache-default.conf  timeout设置成12002. 修改php.ini 配置php.inimax_execution_time = 1200max_input_time = 1200max_execution_time = 1200 后来发现还没有解决问题,到60s就超时了排查到合作的一个代理https的服务器,他们默认60s

0评论2023-02-10635

更多推荐