Jeg har et problem med det kode jeg tidligere har skrevet om her i
gruppen, nemlig noget der laver JavaBeans ud fra en specifikation af
felter+typer, og saa returnerer et objekt af denne type. Det letteste
var faktisk at faa lavet Java Byte Coden ved hjaelp af BCEL
biblioteket fra Jakarta, og saa har jeg nu rodet med ClassLoadere i
laengere tid end jeg umiddelbart bryder mig om. Det har jeg dog nu
faaet til at fungere, saaledes at jeg nu faar kaldt loadClass og
findClass korrekt, og det virker tilsyneladende fint naar jeg koerer
mine demoting, og arbejder i JSP-sider almindeligt.
(Mit maal er at lave noget i stil med)
{
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>");
}
}
som virker i det jeg faar noget fornuftigt ud af udskiftsloekken
ovenfor, og jeg faar en ArrayList puttet i pagekonteksten.
Mit problem er at _foerste_ gang jeg goer ovenstaaende, saa virker det
fint og praecis som jeg gerne vil have naar jeg skal bruge den i en
<html
tions> i en Struts <html:form>, men herefter brager det ned
med en ClassCastException i
sun.reflect.GeneratedMethodAccessor14.invoke.
Forskellen imellem de to, i min kode, er minimal, saa det maa vaere et
eller andet subtilt med ClassLoaderen eller lignende, jeg har
misforstaaet.
Er der nogen der har set noget lignende, og har nogen forslag til hvad
jeg goer nu. Det er deprimerende taet paa at fungere praecis som jeg
gerne vil have
Den fulde fejlmeddelelse er:
java.lang.IllegalArgumentException: java.lang.ClassCastException@f44ec7
at sun.reflect.GeneratedMethodAccessor14.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:230)
at _k__jsp._jspService(/k2/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)
--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn