引起:java.lang.IllegalArgumentException:未知的保留键'_typeConverter'

时间:2017-03-24 10:50:07

标签: struts2 upgrade illegalargumentexception ognl

我在尝试登录Struts应用程序时遇到以下错误。将Struts库升级到最新版本后会发生这种情况。

请分享任何有助于我解决此问题的信息。 Struts的早期版本是2.3.10。较新的版本是2.5.10.1。

 Caused by: java.lang.IllegalArgumentException: unknown reserved key
 '_typeConverter'
     at ognl.OgnlContext.put(OgnlContext.java:536)
     at ognl.Ognl.setTypeConverter(Ognl.java:346)
     at com.opensymphony.xwork2.ognl.OgnlUtil.setProperty(OgnlUtil.java:225)
     at com.opensymphony.xwork2.ognl.OgnlReflectionProvider.setProperty(OgnlReflectionProvider.java:90)
     at org.apache.struts2.factory.StrutsResultFactory.setParameter(StrutsResultFactory.java:67)
     at org.apache.struts2.factory.StrutsResultFactory.setParameters(StrutsResultFactory.java:52)
     at org.apache.struts2.factory.StrutsResultFactory.buildResult(StrutsResultFactory.java:41)
     at com.opensymphony.xwork2.ObjectFactory.buildResult(ObjectFactory.java:220)
     at com.opensymphony.xwork2.DefaultActionInvocation.createResult(DefaultActionInvocation.java:215)
>     ... 18 more

2 个答案:

答案 0 :(得分:1)

您使用的是错误版本的OGNL库。使用Maven或同等程序来管理依赖项。或者下载Essential Dependencies Only以查看Struts 2.5.10.1需要使用哪个版本的OGNL。

答案 1 :(得分:0)

您使用了保留密钥_typeConverter。将您的密钥重命名为其他内容。

 RESERVED_KEYS.put(TYPE_CONVERTER_CONTEXT_KEY, null);

此代码来自apidocs for OgnlContext