Hej Thorbjørn
Jeg har ikke selv nogen erfarring med emnet, men jeg kan måske hjælpe
dig på sporet alligevel.
Der var på dette års JavaOne en session om emnet. Den hed "A Crash
Course in Dynamic Class Generation" og havde nummer TS-2558. Jeg ved
ikke om den blev filmet, men i så fald kan den ses på Java Learning
Center (
http://java.sun.com/learning/) hvis du har adgang dertil. Ellers
kan du finde slides fra sessionen på følgende link:
http://servlet.java.sun.com/javaone/resources/content/sf2002/conf/sessions/pdfs/2558.pdf
Håber det hjalp lidt...
Hygge
/Dennis
Thorbjørn Ravn Andersen wrote:
> Jeg har en situation hvor jeg har et oenske om at generere klasser ud
> fra betingelser der ikke kan forudsiges paa forhaand (Beans ud fra
> JDBC-svar), og jeg har funderet lidt over hvordan det kan goeres,
> isaer fordi jeg godt vil have Bean-metoderne navngivet efter
> samme uforusigelige resultater.
>
> Det har jeg nu funderet over et stykke tid, og er naaet frem til at
> jeg ikke vil kunne lave dette som statisk kode, paa andre maader end
> hvis jeg bruger en form for en Hashtabel hvilket ikke giver den
> oenskede fleksibilitet paa Bean-niveau.
>
> Der er altsaa et behov for at generere kode on-the-fly. Her har jeg
> konstateret tre muligheder:
>
> * Bruge JSP-omgivelserne til at generere en JSP-side og lade den
> definere den paagaeldende klasse, hvorefter det er JSP-serverens
> opgave at faa det oversat og indlaest. Her er der lidt problemer
> med fysisk filplacering, da vi oensker mindst mulig boevl ved at
> skifte mellem webservere.
>
> * Generere helt almindelige Java-klasser, og bruge dem direkte,
> hvilket kraever af JSP-serveren at den kan genoversaette disse on
> the fly. Lider af samme sti problemer som den ovenfor, samt at det
> ikke er alle servere som kan hitte ud af dette. Resin kan, Tomcat
> kan ikke.
>
> * Eftersom det er meget faa operationer jeg skal lave (getXXX, setXXX
> og en constructor med en masse JDBC-kald) kunne man jo generere Java
> Bytecode selv, og fodre det til ClassLoader.defineClass. Herved
> undgaaes ogsaa alle mellemfilerne, men med lidt ekstra boevl. En
> passende Java assembler ville nok vaere en god ide.
>
> Er der nogen andre der har puslet med noget tilsvarende og som har
> nogen erfaringer at dele? Jeg har ikke kunne hitte noget paa nettet,
> og jeg tror det vil vaere noget som mange kan have glaede af idet jeg
> har haft svaert ved at finde en god klistermekanisme mellem Beans og
> JDBC uden at der begyndte at saa J2EE over det hele.
>
> JDBC-driverne er ioevrigt Oracle 9i. Hvis de har nogen interessante
> ting i denne forbindelse (jeg bruger allerede deres Pool-teknologi)
> saa ville det da ogsaa vaere rart.
>