zoukankan      html  css  js  c++  java
  • [struts2]2.3.14 jsonplugin 存在bug<java.lang.NoSuchFieldException: DEFAULT_PARAM>

    添加上json plugin之后启动就会报错

    java.lang.NoSuchFieldException: DEFAULT_PARAM
        at java.lang.Class.getField(Class.java:1537)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addResultTypes(XmlConfigurationProvider.java:569)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:521)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:292)
        at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112)
        at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:250)
        at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
        at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:429)
        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:473)
        at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
        at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
        at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281)
        at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262)
        at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107)
        at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4746)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5399)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3926)
        at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:426)
        at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1345)
        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1530)
        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1519)
        at java.lang.Thread.run(Thread.java:722)

     这个错误是因为struts2在启动的时候默认检查result的属性,

    一般我们写<result>/WEB-INF/index.jsp</result>

    这个是默认result的names="success" DEFAULT_PARAM为"/WEB-INF/index.jsp"的意思.

    默认的stuts2的result会有DEFAULT_PARAM属性比如StrutsResultSupport这个基类

    public abstract class StrutsResultSupport implements Result, StrutsStatics {
    
        private static final Logger LOG = LoggerFactory.getLogger(StrutsResultSupport.class);
    
        /** The default parameter */
        public static final String DEFAULT_PARAM = "location";
    
        private boolean parse;
        private boolean encode;
        private String location;
        private String lastFinalLocation;

     然而jsonresult就没有这个属性

    public class JSONResult implements Result {
    
        private static final long serialVersionUID = 8624350183189931165L;
    
        private static final Logger LOG = LoggerFactory.getLogger(JSONResult.class);
    
        private String encoding;
        private String defaultEncoding = "ISO-8859-1";
        private List<Pattern> includeProperties;
        private List<Pattern> excludeProperties;
        private String root;
        private boolean wrapWithComments;
        private boolean prefix;
        private boolean enableSMD = false;
        private boolean enableGZIP = false;
        private boolean ignoreHierarchy = true;
        private boolean ignoreInterfaces = true;
        private boolean enumAsBean = JSONWriter.ENUM_AS_BEAN_DEFAULT;
        private boolean noCache = false;
        private boolean excludeNullProperties = false;
        private int statusCode;
        private int errorCode;
        private String callbackParameter;
        private String contentType;
        private String wrapPrefix;
        private String wrapSuffix;

    相关解决方案暂不公布.有兴趣可以找我要.

    天行健君子以自强不息。
  • 相关阅读:
    软件体系结构基本概念汇总
    开发,从需求出发 &#183; 之三 春天在哪里
    chrome模拟手机功能
    Codeforces 2
    ViewPager 入门一
    软考之路--最后的最后,我们都是天使
    分享一段php获取随意时间的前一天代码
    [App Store Connect帮助]七、在 App Store 上发行(2.5)设定价格与销售范围:向企业或教育机构分发您的 App
    [App Store Connect帮助]七、在 App Store 上发行(2.3)设定价格与销售范围:为您的 App 选择地区
    [App Store Connect帮助]七、在 App Store 上发行(2.4)设定价格与销售范围:安排价格调整
  • 原文地址:https://www.cnblogs.com/mrye/p/3070079.html
Copyright © 2011-2022 走看看