我用的SSH 这是页面提交到Action后就报错了 
[CIIMS]2012-03-07 10:19:58,453 WARN [http-8080-8] CommonsLogger.warn(49) | Error setting value
ognl.MethodFailedException: Method "setProblemId" failed for object com.uusense.action.IncreasedMessageAction@154ae5a [java.lang.NoSuchMethodException: setProblemId([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 com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor.setProperty(CompoundRootAccessor.java:50)
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.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 com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93)
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.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128)
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:468)
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 org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
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.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:102)
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:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
/-- Encapsulated exception ------------\
java.lang.NoSuchMethodException: setProblemId([Ljava.lang.String;)
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:810)
at ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:964)\--------------------------------------/
[CIIMS]2012-03-07 10:19:58,671 WARN [http-8080-8] CommonsLogger.warn(49) | Could not find action or result
No result defined for action com.uusense.action.IncreasedMessageAction and result input

    求高手解答啊   

解决方案 »

  1.   

    [CIIMS]2012-03-07 10:19:58,453 WARN [http-8080-8] CommonsLogger.warn(49) | Error setting value
    ognl.MethodFailedException: Method "setProblemId" failed for object com.uusense.action.IncreasedMessageAction@154ae5a [java.lang.NoSuchMethodException: setProblemId([Ljava.lang.String;)]它总是提示 我的Action中 参数的get()set()方法有错误  但是 都是对了的啊 
      

  2.   

    都對了什么意思吖?你自動生成下,看下
    No result defined for action com.uusense.action.IncreasedMessageAction and result input
    配置多一個result="input"
      

  3.   

    lz  不是你的getter和setter方法有问题是你的配置文件有问题1、你Action的方法的返回值是什么?
    2、你的相对应的Action的Struts配置文件是不是写了什么返回值的问题。
      

  4.   

    @SuppressWarnings("serial")
    @Controller
    public class IncreasedMessageAction extends ActionSupport  implements ModelDriven<Increased>{

    private Integer itemsId;
    private Integer problemId;
    private Integer itemsName;
    private Integer problemTypeName;
    private Date sumbitDate;
    private int num;


    public Integer getItemsId() {
    return itemsId;
    } public void setItemsId(Integer itemsId) {
    this.itemsId = itemsId;
    } public Integer getProblemId() {
    return problemId;
    } public void setProblemId(Integer problemId) {
    this.problemId = problemId;
    } public Integer getItemsName() {
    return itemsName;
    } public void setItemsName(Integer itemsName) {
    this.itemsName = itemsName;
    } public Integer getProblemTypeName() {
    return problemTypeName;
    } public void setProblemTypeName(Integer problemTypeName) {
    this.problemTypeName = problemTypeName;
    } public Date getSumbitDate() {
    return sumbitDate;
    } public void setSumbitDate(Date sumbitDate) {
    this.sumbitDate = sumbitDate;
    } public int getNum() {
    return num;
    } public void setNum(int num) {
    this.num = num;
    }这是我的参数 都是自动生成的啊
      

  5.   

    配置没问题啊 关键是表单跳转的时候 就错误了  还没读取到struts ,我试过 我把 get() set()删除后 就能提交 就没报这个错了
      

  6.   


    这是我的Action方法 /*
     * 条件查询
     */
    public String findMessagesBy(){
    System.out.println("条件查询!!");
    System.out.println("项目ID:"+this.getItemsName());
    System.out.println("类型ID:"+this.getProblemTypeName());;
    System.out.println("NUM:"+this.getNum());
    System.out.println("日期:"+this.getSumbitDate());

    // if(
    //
    // ){}
    List<Increased> lst = this.increasedMessageService.findMessagesBy(this.getItemsName(), 
    this.getProblemTypeName(), this.getSumbitDate(),this.getNum() );
    System.out.println("dd:"+lst.get(0).getINumber());
    ActionContext.getContext().getSession().put("findAllCreatedMessage", lst);
    return "findMessagesBy";
    }这是我的struts.XML<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
         "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
         "http://struts.apache.org/dtds/struts-2.0.dtd">
    <struts>
    <include file="struts-default.xml" />
    <package name="com.personmanager.action" extends="struts-default">
      
    <action name="rand" class="com.personmanager.action.RandomAction">
    <result type="stream">
    <param name="contentType">image/jpeg,image/png,image/gif,image/jpg</param>
    <param name="inputName">inputStream</param>
    </result>
    </action>



    <!--  -->
    <action name="*IncreasedMessageAction" class="com.uusense.action.IncreasedMessageAction"
    method="{1}">

    <result name="login">/test/Main.jsp</result>
    <result name="uu">/test/addMessage.jsp</result>
    <result name="findAllCreatedMessage">/uusenses/increasedMessage/listCreated.jsp</result>
    <result name="findMessagesBy">/uusenses/increasedMessage/listCreated.jsp</result>
    </action>

    <action name="*ItemsMessageAction" class="com.uusense.action.ItemsMessageAction"
    method="{1}">

    <result name="findAllItems">/uusenses/increasedMessage/addIncreasedMessage.jsp</result>
    <result name="uu">/test/addMessage.jsp</result>
    </action>


    <action name="*ProblemTypeMessageAction" class="com.uusense.action.ProblemTypeMessageAction"
    method="{1}">

    <result name="findAllProblemType">/uusenses/xml/findAllProblemType.jsp</result>

    </action>
         
    </package>
     <constant name="struts.devMode" value="false" />  
      <constant name="struts.i18n.encoding" value="utf-8" /> 
      <constant name="struts.objectFactory.spring.autoWire" value="name" /> 
    <constant name="struts.multipart.saveDir" value="/tmp"></constant></struts>
    现在 是 只要有参数传递 就会报错误  
      

  7.   

    你这个问题我也遇到过,problemId这个表单输入值可能不匹配,比如 “123 ”,多了个空格之类的,struts把这个值看成String类型,就造成楼主说的错误。有种解决方法是把你action中所有类似的属性设为String,用Integer.parseInt(problemId.trim());
      

  8.   

    [java.lang.NoSuchMethodException: setProblemId([Ljava.lang.String;)]
    前台传过去的是个string类型,你后台接受的是integer ,所以报错了
      

  9.   

    [java.lang.NoSuchMethodException: setProblemId([Ljava.lang.String;)]
    前台传的string类型,后台接受的integer,所以报错了
      

  10.   

    这个问题就是类型转换有问题,注意problemId是Integer的就行,以前刚学java的时候容易出现的问题
      

  11.   


    对了 我把 他们都改为String类型了  就没有报错误 ,但是这是为什么啊  难道struts把前台接收的变量 都当着String 来处理的吗 还有 就是 我 这里必须为 Integer类型  不能改  有没有办法 啊
      

  12.   

    Integer 类型可以 struts可以有自动类型匹配 但int的话 好像不行
      

  13.   


    但是我用Integer的时候 还是要报错误 
      

  14.   

    把访问的url发出来看看,Integer应该没问题的啊
      

  15.   

    HTML代码<form method="POST" action="" name="form" id="form">  <input  type="hidden" name="itemsId" id="itemsId" />
       <input type="hidden" name="problemId" id="problemId" />
    <input class="input" type="text" name="submitDate" style="width:35%" value="" id="birthday" 
     readonly="readonly"  onclick="popUpCalendar(this, form.birthday, 'yyyy-mm-dd')"/> 
           <img src="/save.gif" style="cursor:hand" onclick="SaveRecords ();"></form>JS代码<script>
        function SaveRecords(){
           document.form.action='addMessageIncreasedMessageAction.action';
           document.form.submit();
        }
        
        </script>
    我是用表单进行提交的啊 
      

  16.   

    用的是Struts 2?类型转换出错会报setter出错
      

  17.   

    那该怎么解决啊 我刚写好的时候 没错 过了一段时间才报的错误 怪了啊 是不是JAR包有问题啊
      

  18.   

    问题 总算解决了 原来是前台<input>的问题 struts 在接收参数时 会进行类型自动转换 当遇见某些字符就好报错误 我的 就是 多了 空格  不过还是谢谢大家的帮忙啊