[struts2]2.3.14 json-plugin 存在bug<java.lang.NoSuchFieldException: DEFAULT_PARAM>

转载 2013年12月01日 22:56:48

项目启动时 一直报异常,不影响运行但是看着老烦人了。

添加上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;

一下地址 是修改好的jar包,下载后放到项目中便可以。

这是下载地址:http://download.csdn.net/detail/liweifengwf/6641041




【Struts2】利用JQuery与struts2-json-plugin实现Struts2的Ajax功能并利用JSON传递数据

上次在《【Struts2】利用JQuery实现Struts2的Ajax功能》(点击打开链接)已经提及过Struts2除了《【Struts2】Struts2纯手工安装、配置以及Helloworld,以最...
  • yongh701
  • yongh701
  • 2015年03月22日 14:33
  • 1313

struts2的json插件详解 注解

如果我们要在struts2中使用JSON的功能,需要引入struts2-json-plugin-2.3.4.1.jar, 如果使用注解的方式配置JSON,还需要引入 struts2-c...
  • u013444177
  • u013444177
  • 2014年03月02日 20:18
  • 2780

Intellij IDEA项目中遇到json-default发红的解决办法

在项目中用到JSON,配置struts.xml时遇到json-default发红 解决办法: 1.项目中要引入struts2-json-plugin.jar包 2.到Project Structur...
  • ivasox
  • ivasox
  • 2016年07月01日 09:32
  • 2534

Struts2 的错误----couldn't clear tomcat cache java.lang.NoSuchFieldException: resourceEntries

25-Dec-2014 11:29:01.466 WARNING [http-nio-8080-exec-8] com.opensymphony.xwork2.util.LocalizedTextUt...
  • hshansel
  • hshansel
  • 2014年12月25日 11:33
  • 9223

struts2拦截器报错 Struts2 的错误----couldn't clear tomcat cache java.lang.NoSuchFieldException: resourceEnt

1.请求发送后无法找到package的位置或者action的方法,都会报此错误,这是应该检查一下请求的地址和struts2.xml中的配置是否一致 2.配置struts2的拦...
  • EnseHeiKe
  • EnseHeiKe
  • 2016年08月11日 22:39
  • 3090

java.lang.NoSuchFieldException: DEFAULT_PARAM doesn't have a default param [DEFAULT_PARAM] defined!

struts2的bug通过升级版本来解决
  • bestcxx
  • bestcxx
  • 2017年03月16日 14:17
  • 754

java后台返回前端数据的方式json,html 组装json的技术struts2-json-plugin,fast-json,Gson,手动拼接

/** * 后台返回返回数据有几种方式: * 1. json * 2. html * 组装json的技术: * 1.struts2-json-plugin * 2.fastjs...
  • xzr882123
  • xzr882123
  • 2017年12月12日 15:57
  • 81

struts2無法继承json-default的解决方法

struts2的json plugin可以实现struts2和json的完美结合,由于本篇主要是介绍整合过程中遇到的问题,所以编程实现的方法这里就不重复了,具体可以参看struts2的官方文档:htt...
  • tigerdsh
  • tigerdsh
  • 2013年04月06日 07:49
  • 1676

Struts2使用小问题-NoSuchFieldException

五月 12, 2017 4:55:14 下午 com.opensymphony.xwork2.util.logging.jdk.JdkLogger warn 警告: couldn't clear to...
  • zzxx1994617
  • zzxx1994617
  • 2017年05月12日 16:58
  • 358

Struts2-Json-Plugin 的使用(翻译自官方文档)

在 Struts2 中要使用 Ajax 获得 Json 数据我认为目前还是 struts2-json-plugin 了。当然你你可以用手工用像 XStream、Google Gson、Jackso...
  • hld_hepeng
  • hld_hepeng
  • 2012年02月27日 14:38
  • 11152
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[struts2]2.3.14 json-plugin 存在bug<java.lang.NoSuchFieldException: DEFAULT_PARAM>
举报原因:
原因补充:

(最多只允许输入30个字)