ognl.MethodFailedException异常

ognl.MethodFailedException: Method "setReleaseDate" failed for object com.jeecms.article.entity.Article@61806f84 [java.lang.NoSuchMethodException: setReleaseDate([Ljava.lang.String;)]
 at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:823)
 at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:964)
 at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:75)
 at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:131)
 at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(ObjectAccessor.java:28)
 at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1656)
 at ognl.ASTProperty.setValueBody(ASTProperty.java:101)
 at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
 at ognl.SimpleNode.setValue(SimpleNode.java:246)
 at ognl.ASTChain.setValueBody(ASTChain.java:172)
 at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
 at ognl.SimpleNode.setValue(SimpleNode.java:246)
 at ognl.Ognl.setValue(Ognl.java:476)
 at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:192)
 at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:155)
 at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:143)
 at com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(ParametersInterceptor.java:273)
 at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:187)
 at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
 at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
 at com.ponyjava.common.struts2.interceptor.DomainNameInterceptor.doIntercept(DomainNameInterceptor.java:24)
 at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
 at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
 at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
 at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:532)
 at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at com.jeecms.core.web.AccessControlFilter.doFilter(AccessControlFilter.java:80)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:347)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
 at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
 at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
 at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
 at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
 at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
 at java.lang.Thread.run(Thread.java:619)
/-- Encapsulated exception ------------\
java.lang.NoSuchMethodException: setReleaseDate([Ljava.lang.String;)
 at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:810)
 at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:964)
 at ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:75)
 at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:131)
 at com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(ObjectAccessor.java:28)
 at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1656)
 at ognl.ASTProperty.setValueBody(ASTProperty.java:101)
 at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
 at ognl.SimpleNode.setValue(SimpleNode.java:246)
 at ognl.ASTChain.setValueBody(ASTChain.java:172)
 at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
 at ognl.SimpleNode.setValue(SimpleNode.java:246)
 at ognl.Ognl.setValue(Ognl.java:476)
 at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:192)
 at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:155)
 at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:143)
 at com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(ParametersInterceptor.java:273)
 at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:187)
 at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
 at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
 at com.ponyjava.common.struts2.interceptor.DomainNameInterceptor.doIntercept(DomainNameInterceptor.java:24)
 at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
 at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
 at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
 at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
 at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:532)
 at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at com.jeecms.core.web.AccessControlFilter.doFilter(AccessControlFilter.java:80)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:347)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
 at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
 at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
 at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
 at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
 at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
 at java.lang.Thread.run(Thread.java:619)

  

setReleaseDate通过前台页面form提交过来的String类型的日期字符串,而action里的setReleaseDate是Date类型,正常在struts2中,Date日期是可以实现字符串日期转换。

起初以为代码转换中间,出现非法字符或乱码的问题错误。但经过测试后,我本地的测试通过正常,测试服务器的通过正常,当正式服务器的时候测试失败,完全一样的代码,竟然出现异常,头疼了一上午.网上查找了一些资料,可能服务器的字符编码导致的问题,本地windows,测试,正式Liunx。带着尝试的心里,测试了一下,发现,原项目的字符编码是zh_CN.GBK的,而正式服务器的是en_US.UTF-8,把服务器的修改成zh_CN.GBK,项目正常了,让人纠结的问题终于解决了.

 

贴出来分享一下,也给自己做个备忘。

 

补充:
Linux字符编码设置
 
查看Linux字符编码:
more /etc/sysconfig/i18n


如果LANG="en_US.UTF-8",需修改为:LANG="zh_CN.UTF-8",设置方法如下:
手动更改配置文件的命令:
shell> vi /etc/sysconfig/i18n

 

将LANG="en_US.UTF-8"修改为:
LANG="zh_CN.UTF-8"

 

保存并关闭,运行下面的命令使配置生效:
shell> source /etc/sysconfig/i18n

 

将终端字符编码显示为简体中文:
shell> vi /etc/profile.d/chinese.sh

添加下面这行:export LC_ALL=zh_CN.UTF-8


shell> source /etc/profile.d/Chinese.sh

 

 

需要重起应用服务Apache,Tomcat,项目正常!

 

 

 

补充:

struts2中常见的类型转换:

boolean和Boolean:完成字符串和布尔值之间的转换;
char和Character:完成字符串和字符之间的转换;
int和Integer:完成字符串和整形之间的转换;
long和Long:完成字符串和长整形之间的转换;
flota和Float:完成字符串和单精度浮点值之间的转换;
double和Double:完成字符串和双精度浮点值的转换;
Date:完成字符串和日期类型之间的转换!;
数组:默认情况下,数组元素是字符串,如果用户提供了自定义类型转换器,也可以是其他复合类型转换器;
集合:默认情况下,假定集合元素为String,并创建一个新的ArrayList封装所有的字符串;


 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值