2017-03-24 38 views
3

我正在嘗試登錄到我的Struts應用程序時出現以下錯誤。這是在將我的Struts庫升級到最新版本之後發生的。引起:java.lang.IllegalArgumentException:未知的保留鍵'_typeConverter'

請分享任何信息,這將有助於我解決這個問題。先前版本的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

你也應該發佈一些代碼,以便我們可以有這個錯誤的上下文 – rakwaht

+0

謝謝@rakwaht的評論。我不知道哪個代碼也會拋出錯誤。這就像應用程序級錯誤。在屏幕上打開任何頁面之前,這個錯誤顯示出來。 – ramanareddy438

回答

1

您使用的是OGNL庫的錯誤版本。使用Maven或相當於管理依賴關係。或者下載Essential Dependencies Only以查看您需要使用Struts 2.5.10.1的哪個版本的OGNL。

+0

Reserver word是所有版本的OGNL。這個答案是錯誤的。 –

+1

@RomanC從哪裏來呢?你不知道你在說什麼。你可以親自嘗試一下,看看我是對的。 –

+0

謝謝@AleksandrM的回答。我嘗試了你給的OGNL jar文件。它看起來像它的工作。我再也看不到這個例外了。 – ramanareddy438

0

您已使用保留鍵_typeConverter。將你的鑰匙重命名爲別的東西。

RESERVED_KEYS.put(TYPE_CONVERTER_CONTEXT_KEY, null); 

此代碼自apidocs for OgnlContext

+0

感謝您的回覆@Roman C.我無法看到我的整個代碼庫中的_typeConverter鍵。 – ramanareddy438

+0

你應該接受幫助你的答案,接受的答案應該是有效的。 –

相關問題