I didn't test it myself but could it be that your parameter map says "int" but the actual type is "Integer"?
 
Mark

 
On 5/17/05, Binh Tran <[EMAIL PROTECTED]> wrote:
Hi all,
When I tried to execute a procedure to return type NUMBER, I got this error
message.

[java] Caused by: com.ibatis.common.beans.ProbeException: Could not set
property 'userId' for com.cellmania.cingular.user.UserParams.  Cause:
java.lang.IllegalArgumentException: argument type mismatch
    [java] Caused by: java.lang.IllegalArgumentException: argument type
mismatch
    [java]     at
com.ibatis.common.beans.JavaBeanProbe.setProperty(JavaBeanProbe.java:309)
    [java]     at
com.ibatis.common.beans.JavaBeanProbe.setObject (JavaBeanProbe.java:229)
    [java]     at
com.ibatis.common.beans.GenericProbe.setObject(GenericProbe.java:73)
    [java]     at
com.ibatis.sqlmap.engine.exchange.ComplexDataExchange.setData(ComplexDataExc
hange.java:109)
    [java]     at
com.ibatis.sqlmap.engine.mapping.parameter.BasicParameterMap.refreshParamete
rObjectValues(BasicParameterMap.java:140)

My XML block is
<typeAlias alias="UserParams2"
       type="com.cellmania.cingular.user.UserParams" />
<parameterMap id="registerParams" class="userParams2">
    <parameter property="userId" jdbcType="NUMERIC" javaType="int"
mode="OUT" />
    <parameter property="userName" jdbcType="VARCHAR" />
    <parameter property="password" jdbcType="VARCHAR" nullValue="" />
    <parameter property="jobTitle" jdbcType="VARCHAR" nullValue="" />
    <parameter property="level" jdbcType="VARCHAR" nullValue="" />
    <parameter property="firstName" jdbcType="VARCHAR" nullValue="" />
    <parameter property="lastName" jdbcType="VARCHAR" nullValue="" />
    <parameter property="taxId" jdbcType="VARCHAR" nullValue="" />
    <parameter property="email" />
    <parameter property="workPhone" jdbcType="VARCHAR" nullValue=""/>
    <parameter property="fax" jdbcType="VARCHAR" nullValue=""/>
    <parameter property="address1" jdbcType="VARCHAR" nullValue=""/>
    <parameter property="address2" jdbcType="VARCHAR" nullValue=""/>
    <parameter property="city" jdbcType="VARCHAR" nullValue=""/>
    <parameter property="state" jdbcType="VARCHAR" nullValue=""/>
    <parameter property="zip" jdbcType="VARCHAR" nullValue=""/>
    <parameter property="country" jdbcType="VARCHAR" nullValue=""/>
    <parameter property="companyName" jdbcType="VARCHAR" nullValue="" />
    <parameter property="companyUrl" jdbcType="VARCHAR" nullValue="" />
</parameterMap>
<procedure id="register" parameterMap="registerParams"
       cacheModel="UserCache">

       { ? = call cingular.register( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ? ) }
</procedure>

And my UserParams block is
           private Integer    userId    = null;
   public void setUserId(Integer userId)
   {
       this.userId = userId;
   }

   public Integer getUserId()
   {
       return userId;
   }

Please help.

Binh.


Reply via email to