• 解决json结合struts2时,Class org.apache.struts2.json.JSONWriter can not access a member of * 的问题


    在使用json的时候,产生的一个错误,查了一下资料,原来是struts2和json一起使用的时候,才产生的问题,虽然不影响程序的运行,但是总是会有一些异常的日志产生,并且,这个也会增加程序的负担。

    原因:

    struts2的action里面的数据转换成json数据时,会将提供了get方法的属性都串行化输出JSON到客户端。有的时候,很多属性并不能串行 化成json数据。这时还进行强行转换就会出现这样的异常。

    我的代码:

        private static final long serialVersionUID = 1L;
        private Logger logger=Logger.getLogger(AuthAction.class);
        private AuthService authService;
        private RoleService roleService;
        private HttpServletRequest request;
        private HttpServletResponse response;
    
        private int authId;
        private String authName;
        private String authPath;
        private int parentId;
        private String authDesc;

    在action里面,我要输出到页面的是第二段里面的authid等字段,上面的一段代码中,通过spring,注入了authService 和 roleService,并且都有get方法。

    解决方法:

    在不能串行化到json的属性相应的get方法前加一条json标记 @JSON(serialize=false)。告诉json不需要转化这个属性。或者根本不写这个get方法。

    因为用的是setter-getter方式注入,不能不写get方法,就在下面两个getXXXService方法前加上 @JSON(serialize=false) ,这样控制台就不会报错了,也减少了json输出时候的负担。

  • 相关阅读:
    ceph概述
    docker网络
    ceph部署
    K8s集群搭建(二)
    K8s架构
    K8s集群搭建(一)
    Kubernetes介绍
    虚拟化网络管理(二)
    virt-manager创建虚拟机
    C#中TransactionScope的使用方法和原理
  • 原文地址:https://www.cnblogs.com/juepei/p/3802346.html
Copyright © 2020-2023  润新知