Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Struts2 原因:java.lang.IllegalArgumentException:未知保留密钥'_类型转换器';_Struts2_Upgrade_Illegalargumentexception_Ognl - Fatal编程技术网

Struts2 原因:java.lang.IllegalArgumentException:未知保留密钥'_类型转换器';

Struts2 原因:java.lang.IllegalArgumentException:未知保留密钥'_类型转换器';,struts2,upgrade,illegalargumentexception,ognl,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 ogn

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

您使用了保留键
\u typeConverter
。将您的密钥重命名为其他密钥

 RESERVED_KEYS.put(TYPE_CONVERTER_CONTEXT_KEY, null);

此代码来自。

您正在使用错误版本的OGNL库。使用Maven或等效工具管理依赖项。或者下载以查看您需要在Struts 2.5.10.1中使用哪个版本的OGNL。

您还应该发布一些代码,以便我们可以了解此错误的上下文谢谢@rakwht的评论。我不知道哪个代码也抛出了错误。这类似于应用程序级错误。在打开屏幕上的任何页面之前,会显示此错误。感谢您的回复@Roman C。我在我的整个代码库中都看不到_typeConverter键。您应该接受帮助您的答案,接受的答案应该是向上投票的。Reserver word的所有版本都是OGNL。这个答案是错误的。@RomanC那么它从何而来呢?你不知道你在说什么。你可以自己试试看,看我是对的。谢谢@AleksandrM的回答。我尝试了你提供的OGNL jar文件。看起来它起作用了。我再也看不到这种例外了。
 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