我在尝试登录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
答案 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
。