You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@turbine.apache.org by John McNally <jm...@collab.net> on 2002/01/17 05:59:37 UTC

Re: intake and business object mapping: confusing StringKey with String in setProperies

This is a problem with java's bean introspection classes.  It is
difficult to fix as there are bugs in different classes in different jdk
versions.  The version in cvs will work for jdk1.3.x, I believe.  You
can remove the String convenience method from torque's Object.vm
template and regenerate your sources for an easier fix.

john mcnally


Joel Hockey wrote:
> 
> I've just started using turbine for a GSM SMS payment gateway application
> that I am writing.  The idea is to allow builders and plumbers and whatever
> to take credit card payments using their mobile phone.
> 
> Anyway, I'm using turbine for the web side of things and I've run into a
> problem with intake.
> 
> I am using intake with mapping to my business object.  (I don't have my
> exact source with me right now, but it is along the lines of)
> 
> <group name="Merchant" key="merchant" mapToObject="om.Merchant">
>     <field name="Merid" key="merid" type="String">
>         <rule name="minLength" value="8">Merchant Id must be at least 8
> long</rule>
>           <rule name="maxLength" value="16">Merchant Id must not be longer
> than 16</rule>
>     </field>
> .
> .
> .
> </group>
> 
> I used torque to generate my Merchant business object.  The primary key is
> the field Merid.  The generated MerchantBase class has two methods to set
> the Merid:
> setMerid(String s), and setMerid(StringKey sk)
> 
> In a screen class for a page where I either create or edit a merchant, I
> check for a merchant Id as a parameter from the previous request.  If no id
> exists, then I create a new merchant object and put it in the context for
> velocity and also in the ServletContext.
> 
> My action class to handle the submission of the form does
> 
>         Merchant mer =
> (Merchant)data.getServletContext().getAttribute("merchant");
>         Group g = intake.get("Merchant", mer.getMerid());
>         g.setProperties(mer);
> 
> When I call g.setProperties() I am getting an InvocationTargetException at
> line 663 in org.apache.turbine.services.intake.model.Field.setProperty().
> 
> The problem is that the field is using the method setMerid(StringKey sk),
> but is passing in a String.
> 
> Why is intake using the setter method that takes a StringKey rather than the
> setter method that takes a String?
> 
> Thanks,
> 
> Joel Hockey
> 
> 
> 
> --
> To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
> For additional commands, e-mail: <ma...@jakarta.apache.org>

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>