Struts 2.3.12 启动时报java.lang.NoSuchFieldException: DEFAULT_PARAM
异常信息如下,哪位大侠帮忙解决下。[DEBUG][com.opensymphony.xwork2.config.providers.XmlConfigurationProvider:76] The result type org.apache.struts2.dispatcher.HttpHeaderResult doesn't have a default param [DEFAULT_PARAM] defined
java.lang.NoSuchFieldException: DEFAULT_PARAM
at java.lang.Class.getField(Class.java:1520)
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.getFilter(ApplicationFilterConfig.java:275)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3693)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4340)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) struts --------------------编程问答-------------------- 配置文件呢,result type不对。 --------------------编程问答-------------------- 把你struts.xml文件发下看看吧,应该那里配置出问题了 --------------------编程问答--------------------
配置文件是空的
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
</struts>
--------------------编程问答--------------------
求高手解决,另附上JARS包列表
--------------------编程问答-------------------- lz咋么运行的错误?是提交表单后吗?还是怎么样? --------------------编程问答-------------------- (⊙o⊙)… 你struts.xml文件是空的当然会抱这个错误,因为struts2默认会有个返回值,这个返回值是定义在struts-default.xml中的。 所以,你struts.xml中至少要配置一个<package name="XXXX" extends="struts-default">的配置。 否则何来默认的返回参数,当然会报The result type org.apache.struts2.dispatcher.HttpHeaderResult doesn't have a default param [DEFAULT_PARAM] defined
asm-3.3.jar
asm-commons-3.3.jar
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
commons-logging-1.1.1.jar
commons-logging-api-1.1.jar
commons-pool-1.5.3.jar
freemarker-2.3.19.jar
javassist-3.11.0.GA.jar
log4j-1.2.16.jar
ognl-3.0.6.jar
spring-aop-3.2.2.jar
spring-aspects-3.2.2.jar
spring-beans-3.2.2.jar
spring-context-3.2.2.jar
spring-context-support-3.2.2.jar
spring-core-3.2.2.jar
spring-expression-3.2.2.jar
spring-orm-3.2.2.jar
spring-struts-3.2.2.jar
spring-test-3.2.2.jar
spring-tx-3.2.2.jar
spring-web-3.2.2.jar
struts2-core-2.3.12.jar
struts2-junit-plugin-2.3.12.jar
struts2-spring-plugin-2.3.12.jar
struts2-xwork-core-2.3.12.jar
velocity-1.6.4.jar
velocity-tools-2.0.jar
--------------------编程问答-------------------- 哦,就是因为没有配置所以才报错的是不是?因为没有继承struts-default所以就没有默认的input所以报错?楼上的是不是? --------------------编程问答-------------------- 配置文件不允许为空 --------------------编程问答--------------------
是启动tomcat时就报的错
struts.xml不为空时,配置了action也会报异常,这个异常级别的debug的,不影响使用,日志打开debug时看着很不爽 --------------------编程问答-------------------- 现在能正常使用了吧? --------------------编程问答-------------------- 顶起 struts2.3.12 貌似就是有这么个bug,真可恶,怎么配置都出现这个!貌似estends="struts-default" 没好使,有谁给个struts.xml的配置例子 ,要struts2.3.12 好用的 --------------------编程问答--------------------
晚上回去给你,我有, --------------------编程问答--------------------
使用是没问题,只是那个DEBUG的异常依然存在 --------------------编程问答-------------------- 大哥我今天也出现这个问题了。不过我只用struts时不出现这个问题, 但三个框集成起来就出现这问题, 晕死了。 --------------------编程问答-------------------- #14 一般你把三大框架集成之后还是需要配置很多东西的!比如在web.xml中就需要配置启动项
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> --------------------编程问答--------------------
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> --------------------编程问答--------------------
单独使用时把log4j的debug打开了吗 --------------------编程问答-------------------- 这个是一个bug问题,类中没有提供这个参数,解决方法:找到源码,拷贝出来,在工程中自己创建一个同样的类,路径和类名都要一样,然后在类中设置上 public static final String DEFAULT_PARAM = "status";就行了,我就是这么解决的
这个错误不解决也不影响正常使用 --------------------编程问答-------------------- ---------------------18楼正解------------------- --------------------编程问答-------------------- 按照18楼方法,没有那个报错了,但为什么又报其他方面的错了 --------------------编程问答-------------------- 18楼的当然不是正解,如果这个问题如此简单的话,负责struts2的老兄Lukasz Lenart不会现在都还没有解决这个问题,人家说这个问题或许要到2.3.16。原话:
Lukasz Lenart added a comment - 30/Jul/13 07:00
In 2.3.16 probably, if you register a new issue I will assign a valid Fix version to it.
具体见https://issues.apache.org/jira/browse/WW-3964 --------------------编程问答-------------------- 加我QQ群,我放群共享里面了。214579879,我是2.3.15.1版 --------------------编程问答-------------------- 如果你没有使用struts2-json-plugin.jar包,把这个包去掉就可以了。这个bug如21楼老兄所说也许会在2.3.16这个版本中解决。
补充:Java , Java EE