As mentioned on this list previously I have, with great labour, written 
a class which generates beans on the fly using BCEL based on a 
user-provided Property mapping field-named to field-types.

This now works well, but my first attempt on using these beans with 
Struts have failed with the error message quoted at the end of this 
message, which indicates to me that I have missed some part here.

I have an ArrayList of my beans, where this code works nicely:

    {
      java.util.ArrayList al = 
abf.createBeanArrayList(stmt.executeQuery( "select distinct donor_ab0 
from ab0_rules order by donor\
_ab0"));
      pageContext.setAttribute( "bloodTypes", al);
      java.util.ListIterator i = al.listIterator();
      while( i.hasNext()) {
         Object o = i.next();
         out.println( o + " : " + BeanUtils.describe( o) + "<br>");
      }
}

and prints out the following:

org.scandiatransplant.anonybeans.Xcc416f1298d2f3e4.3e9584e0f1d96d@415727 
: {donor_ab0=0, class=class 
org.scandiatransplant.anonybeans.Xcc416f1298d2f3e4.3e9584e0f1d96d}

org.scandiatransplant.anonybeans.Xcc416f1298d2f3e4.3e9584e0f1d96d@c0fc8e 
: {donor_ab0=A, class=class 
org.scandiatransplant.anonybeans.Xcc416f1298d2f3e4.3e9584e0f1d96d}
...

But when I want to use it with Struts 1.0.2 in the construct

...
<html:select property="bloodType">
<html:options collection="bloodTypes" property="donor_ab0"
    labelProperty="donor_ab0"/>
</html:select>
...

it fails as described.  If it is related, I have found that I can easily 
  cast the result of "bean.newInstance()" to an Object, but not to a 
Class.

Any thoughts on how to fix this would be appreciated.  I am so close to 
making this work :-)




The error message is as follows

java.lang.IllegalArgumentException: java.lang.ClassCastException@4649ed
        at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at 
org.apache.struts.util.PropertyUtils.getSimpleProperty(PropertyUtils.java:717)
        at 
org.apache.struts.util.PropertyUtils.getNestedProperty(PropertyUtils.java:426)
        at org.apache.struts.util.PropertyUtils.getProperty(PropertyUtils.java:453)
        at org.apache.struts.taglib.html.OptionsTag.doEndTag(OptionsTag.java:202)
        at _k__jsp._jspService(/k1/k.jsp:146)
        at com.caucho.jsp.JavaPage.service(JavaPage.java:74)
        at com.caucho.jsp.Page.subservice(Page.java:485)
        at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:179)
        at com.caucho.server.http.Invocation.service(Invocation.java:288)
        at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:132)
        at com.caucho.server.http.ServletServer.serviceTop(ServletServer.java:937)
        at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:213)
        at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:158)
        at com.caucho.server.TcpConnection.run(TcpConnection.java:140)
        at java.lang.Thread.run(Thread.java:536)




-- 
   Thorbjoern Ravn Andersen
   Scandiatransplant, c/o Christian Mondrup
   89 49 53 01
   http://biobase.dk/~tra


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to