Jakarta ee struts2拦截器问题

Jakarta ee struts2拦截器问题,jakarta-ee,struts2,struts,Jakarta Ee,Struts2,Struts,我是struts2新手,在此之前我一直在使用struts1.2,Spring和Hibernate的组合。我刚刚开始使用Struts2、Spring和Hibernate应用程序,但我似乎被拦截器异常所困扰 有两个错误一直在发生,都在不同的场景中 1) 2010-07-26 19:50:58031错误org.apache.struts2.dispatcher.dispatcher.错误:27-找不到操作或结果 没有为操作com.inrev.bm.action.ircampaignmgmtractio

我是struts2新手,在此之前我一直在使用struts1.2,Spring和Hibernate的组合。我刚刚开始使用Struts2、Spring和Hibernate应用程序,但我似乎被拦截器异常所困扰

有两个错误一直在发生,都在不同的场景中

1) 2010-07-26 19:50:58031错误org.apache.struts2.dispatcher.dispatcher.错误:27-找不到操作或结果 没有为操作com.inrev.bm.action.ircampaignmgmtraction和结果输入定义结果 在com.opensymphony.xwork2.DefaultActionInvocation.ExecuteSult(DefaultActionInvocation.java:364) 在com.opensymphony.xwork2.DefaultActionInvocation.invoke上(DefaultActionInvocation.java:266) 位于com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252) 位于org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) 在com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 位于com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 在com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept上(ConversionErrorInterceptor.java:122) 位于com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 在com.opensymphony.xwork2.interceptor.parameters-sinterceptor.doIntercept(parameters-sinterceptor.java:195) 在com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87) 位于com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237) 在com.opensymphony.xwork2.interceptor.parameters-sinterceptor.doIntercept(parameters-sinterceptor.java:195)

2) 2010-07-26 22:09:22779调试com.opensymphony.xwork2.interceptor.ParametersInterceptor.DEBUG:57-设置参数session=>[{“session_key”:“Djshjhdfkjhuhhhhghfhg-1133902930”,“uid”:1133902930,“expires”:0,“secret”:“fjhfhlkasjdhfkdsjhjhjhjhjhhhjhjhjhjhjhjhjdh”,“sig”:“hjfjjfjhljhljhjhhhhhhhjhhhhhhjjhjhhhj 2010-07-26 22:09:22780调试com.opensymphony.xwork2.conversion.impl.XWorkConverter.DEBUG:57-属性:会话 2010-07-26 22:09:22781调试com.opensymphony.xwork2.conversion.impl.XWorkConverter.DEBUG:57-Class:com.inrev.bm.action.IRFacebookAction 2010-07-26 22:09:22797调试com.opensymphony.xwork2.conversion.impl.XWorkConverter.DEBUG:57-属性会话的转换器为空。映射大小:0 2010-07-26 22:09:22797调试com.opensymphony.xwork2.conversion.impl.XWorkConverter.DEBUG:57-属性[session]的字段级类型转换器=未找到 2010-07-26 22:09:22798调试com.opensymphony.xwork2.conversion.impl.XWorkConverter.DEBUG:57-属性[session]的全局级别类型转换器=未找到 2010-07-26 22:09:22799调试com.opensymphony.xwork2.conversion.impl.XWorkConverter.DEBUG:57-返回默认类型转换器[com.opensymphony.xwork2.conversion.impl]。XWorkBasicConverter@18a62f6] 2010-07-26 22:09:22804调试com.opensymphony.xwork2.conversion.impl.XWorkConverter.DEBUG:61-无法使用类型转换器[com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter]转换值 无法从值{“session_key”:“6e2ecfba81fc0e9b889a80021133902930”,“uid”:1133902930,“expires”:0,“secret”:“fjhflkasjdhfjhfhjjhjhfjkd”,“sig”:“fe455338f9d869e58993d9c8dcdccb7”}-[未知位置]位于com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter.converter.value(xbasicconverter.java:141) 位于com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter.convertValue(XWorkBasicConverter.java:135) 位于com.opensymphony.xwork2.conversion.impl.XWorkConverter.convertValue(XWorkConverter.java:323) 在com.opensymphony.xwork2.ognl.OgnlTypeConverterWrapper.convertValue(OgnlTypeConverterWrapper.java:28) 在ognl.OgnlRuntime.getConvertedType(OgnlRuntime.java:1040) 在ognl.OgnlRuntime.getConvertedTypes(OgnlRuntime.java:1057) 在ognl.OgnlRuntime.getConvertedMethodAndArgs(OgnlRuntime.java:1083)中

我可以看出第一个错误与Validator interceptor有关,第二个错误与Parameter convertor有关,但我似乎不知道如何修复它们。在第二个例外中,所有参数值都是从facebook发送的。非常感谢您的帮助

问候,,
Rohit

我可以帮助您解决第一个例外。您需要确保
com.inrev.bm.action.ircampaignmgmtracion
的操作映射具有
输入
结果:

 <action name="your-action-name" class="com.inrev.bm.action.IRCampaignMgmtAction">
   <result name="input">/WEB-INF/pat/to/input.jsp</result>
   <result name="success">/WEB-INF/pat/to/success.jsp</result>
 </action> 
方法(从第366行开始)。
com.inrev.bm.action.IRFacebookAction
类中的
session
属性是什么Java类型


如果XWork在默认情况下无法处理此情况,则您可能必须处理此情况。

嘿,帕特,感谢您的建议,添加操作映射结果确实会停止异常,但为什么在我不需要任何验证时它会进入验证页面。第二,由于验证一直失败,它一直转到输入映射。而且,我的其他课程似乎都没有出现这种情况。如何避免应用任何转换器。我想自己从请求对象检索参数对象。Struts2根据
验证
工作流
拦截器确定何时运行验证。在struts.xml中,如果没有显式设置拦截器堆栈,将应用
defaultStack
(其中包括这两个拦截器)。对于这两个问题,您可以创建一个自定义堆栈,该堆栈既不包含验证拦截器,也不包含
params
拦截器。然后你就可以自己提取对象了。下面解释了拦截器以及如何为特定操作定义自定义堆栈:嘿,帕特,谢谢你的回复,我删除了验证器拦截器,第二个错误是h