java.lang.IllegalArgumentException: Cannot invoke com.yourcompany.struts.entity.Goods.setBeginTime - argument type mismatch请高手帮忙解决下,感谢 

解决方案 »

  1.   

    我也知道是参数类型不匹配,
    我把我的actionform和hbm.xml文件贴出来吧actionformpublic class GoodsForm extends ActionForm {
    /*
     * Generated Methods
     */ /** 
     * Method validate
     * @param mapping
     * @param request
     * @return ActionErrors
     */
    public ActionErrors validate(ActionMapping mapping,
    HttpServletRequest request) {
    // TODO Auto-generated method stub
    return null;
    } /** 
     * Method reset
     * @param mapping
     * @param request
     */
    public void reset(ActionMapping mapping, HttpServletRequest request) {
    // TODO Auto-generated method stub
    }


    private Goods item=new Goods(); public GoodsForm(){

    if(item ==null){
    item=new Goods();

    }

    item.setBuyer(new User());
    item.setSaler(new User());

    }


    public Goods getItem() {
    return item;
    } public void setItem(Goods item) {
    this.item = item;
    }
    }<?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- 
        Mapping file autogenerated by MyEclipse - Hibernate Tools
    -->
    <hibernate-mapping package="com.yourcompany.struts.entity">
        <class name="Goods" table="goods" schema="dbo" catalog="epai">
            <id name="goodsId" type="java.lang.Long">
                <column name="goods_id" />
                <generator class="native" />
            </id>
            <property name="goodsName" type="java.lang.String">
                <column name="goods_name" length="50" not-null="true" />
            </property>
            <property name="goodsPrice" type="java.lang.Double">
                <column name="goods_price" scale="4" not-null="true" />
            </property>
            <property name="goodsPic" type="java.lang.String">
                <column name="goods_pic" length="500" />
            </property>
            <property name="goodsDesc" type="java.lang.String">
                <column name="goods_desc" length="3000" />
            </property>
           
           <many-to-one name="saler" class="User">
            <column name="saler_id" not-null="true"></column>
           </many-to-one>
           
            <property name="beginTime" type="java.sql.Date" >
                <column name="begin_time" length="23" />
            </property>
            <property name="endTime" type="java.sql.Date">
                <column name="end_time" length="23" />
            </property>
            
           <many-to-one name="buyer" class="User">
            <column name="buyer_id" not-null="true"></column>
           </many-to-one>
           
            <property name="goodsStatus" type="java.lang.Integer">
                <column name="goods_status" not-null="true" />
            </property>
            
            <set name="bids" inverse="true" lazy="false">
             <key>
             <column name="goods_id" not-null="true"/>
             </key>
             <one-to-many class="Bid"/>
            </set>
        </class>
    </hibernate-mapping>
      

  2.   

    property name="goodsName" type="java.lang.String"把String 及下面对应的都改为小写试试
      

  3.   

    你把GoodsForm的beginTime类型改为String,
    对数据库操作时做一下转换,
    actionform 不能将例如"2009-05-20"这样的字符串自动转换为Date型