关闭

Struts2Action使用插件返回json时报错问题

454人阅读 评论(0) 收藏 举报

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

Struts2Action使用插件返回json时报如下错误:

<span style="font-size:18px;">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"</span>


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


解决方案:

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

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

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

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

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

4)可以去掉不必要的get方法也可以解决

转载自:http://www.cnblogs.com/xiaoyaorensheng/archive/2013/01/02/2842302.html

0
0
查看评论

登陆界面遇到的问题-struts2中返回json给前台一直失败回调

要做一个登陆界面,我写了个demo来演示遇到的问题。 struts.xml中的配置如下: 首页就是一个登陆界面,用户可以输入用户名和密码。 登陆页的action中接收前台通过ajax传过来的参数:username,pwd 然后在数据库中查询...
  • javaexploreroooo
  • javaexploreroooo
  • 2016-08-16 10:49
  • 1060

SpringMVC 使用@ResponseBody 返回json 报错,一直不出来

首先 我的 4.1.6.RELEASE 一定要,下面的包,才行.刚开始一直报错,不出来就是包导入错了,  关键啊     com.fasterxml.jackson.core     jackson-datab...
  • u011091199
  • u011091199
  • 2016-11-24 16:58
  • 1220

在使用JSON格式处理数据时应该注意的问题

根据项目的需要,我要定义一个JSON字符串。鉴于之前零基础,看到百科的解释如下链接http://baike.baidu.com/link?url=TUxeHruHcaY-hofuOufrP37a8VhUT8hcFM4k7JkTN1500wAlfwihAoRRg12g5klTT-l050TjCGA__...
  • qq_24122593
  • qq_24122593
  • 2017-05-20 09:21
  • 403

使用JSON.parse解析JSON数据时,出现报错

使用JSON.parse解析后台返回的JSON字符串时报错,原因大概是遇到特殊字符没有转义。 可以用str.replace(/\n/g,"\\\\n")转义,'\\'转成单个'\','\\n'转成'\n',最后转成...
  • qq_31934975
  • qq_31934975
  • 2017-10-27 14:08
  • 735

浏览器[IE] Ajax Struts Json返回json字符串,解析不了 提示保存或下载 解决方式

IE浏览器xAjax Struts Json返回json字符串,解析不了  提示保存或下载 解决方式
  • xiaokang_2007
  • xiaokang_2007
  • 2014-06-12 15:21
  • 1217

Struts2 action通过struts2返回json方法(一)

在web应用开发中,请求服务器返回json的使用经常用到。今天,特地对action返回json的几种方法进行测试(方法很多)。 这种方法网上文章也比较多:使用strtus.xml配置使action返回json。 不多说,直接步骤(strtus2其它的配置不在这里描述了,就描述一下关系到返回json相...
  • biboheart
  • biboheart
  • 2013-08-28 09:46
  • 7126

Spring MVC返回hibernate对象序列化json报懒加载出错的问题

在懒加载的字段上加上JsonIgnore注解 例如 @JsonIgnore @OneToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY, mappedBy = "TCrawlerWin310")...
  • RO_wsy
  • RO_wsy
  • 2015-07-27 10:20
  • 1538

@ResponseBody返回json数据报异常

java spring mvc @ResponseBody返回json数据报错 
  • hedandan160
  • hedandan160
  • 2014-07-30 10:25
  • 8718

springmvc 集成 mybatis 使用懒加载后,返回JSON报错

参考资料:http://m.blog.csdn.net/article/details?id=51236938 解决方案 为SpringMVC里默认序列化使用的 com.fasterxml.jackson.databind.ObjectMapper 设置其属性 Serializat...
  • justinytsoft
  • justinytsoft
  • 2016-12-11 20:49
  • 2310

解决SpringMVC返回Json数据格式不严谨报异常的问题(草稿未完成)

周末调试程序的时候发现的该问题,表现如下:
  • zdsdiablo
  • zdsdiablo
  • 2014-08-25 15:09
  • 8606
    个人资料
    • 访问:1494次
    • 积分:77
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条