Mads Bahrt <mads_bahrt@hotmail.com> writes:
[snip]
> Produktet er en web-applikation, og vores "kunde" havde forestillet
> sig at vi brugte en Tomcatserver som platform. Dette virker imidlertid
> som et problem, da Tomcat, så vidt jeg kan gennemskue, kun kan køre
> opgaver som reaktion på en request. I vores problem er det imidlertid
> en central funktionalitet at kunne schedulere opgaver til at køre,
> f.eks. kl. 1 om natten, uovervåget. Er det korrekt forstået at man
> ikke kan få Tomcat til at køre en metode med et vist interval, uden at
> det bliver et hack bestående af cron og wget?
Det er nok ikke Tomcat du vil have til at goere det, men din egen
applikation (som maaske tilfaeldigvis kan vaere en web-applikation til
at koere under Tomcat).
Du kan kigge paa ServletContextListener (google) til at taende
og slukke din schedulering under web-applikationer. Der findes mange
schedulerings mekanismer til Java, nok den simpleste er med i j2se;
java.util.Timer
> Vi kigger som alternativ på at skrive vores domænelag i "normal java",
Ja, skriv da endeligt ikke unormal Java
Om din Java bliver
afviklet i en JVM under en container som Tomcat eller Jboss eller "plain j2se"
er i princippet ligegyldigt. JEE er "bare" nogen anbefalinger til
hvordan du kan skrive kode paa en standardiseret maade, og hvad du kan
goere for ikke at ende op med noget rod (ikke ment som flame af jee).
> dette vil betale sig tilbage i brugt tid og give pænere kode. Er
> Hibernate et godt valg?
Ja - proev kun at bruge ejb3 annotations. Saa kan du (hurtigere) skifte til
JEE hvis I skulle have lyst til at kaste Jer ud i det.
> En anden løsningsmodel vi overvejer er at gå fra en servlet-container
> til en hel Java EE container som f.eks. JBoss. Her har jeg set at der
> findes en afviklingsmodel baseret på timere. Ville denne evt. også
> være tilgængelig i Tomcat eller kræver det en fuld Java EE container?
Brug hellere noget simpelt som f.eks. java.util.Timer eller Quartz som
ogsaa er naevnt. De binder sig ikke op mod en bestemt container (= du
kan teste uden at starte + installere til containeren)
> Overordnet set søger jeg kommentarerer på hvor grimt et semiheterogent
> Tomcat-kalder-J2SE-persisterer-i-hibernate system er kontra hvor egnet
> Java EE er til en applikation hvor hovedfunktionaliteten udføres
> asynkront af webinterfacet igennem timere.
Grimt
. Skriv saa meget kode du kan som normal j2se kode, og lav
derefter nogle simple "adapter" klasser til at interface med det framework
eller den container du vaelger - det er vist hovedideen i letvaegts-
programmering som er meget hypet for tiden
(Et eksempel her kunne vaere den ServletContextListener som jeg naevnte foer,
som er adapteren mellem Tomcat og din j2se kode)
> Samtidig ønsker jeg kommentarer på læringsbyrden i Hibernate kontra
> Java EE eller om man skulle kigge på et andet persistensframework end
> hibernate.
JEE og Hibernate med annotations er naesten ens. Proev at starte med
at undgaa at mappe relationer (klar dem manuelt), samt undgaa sammensatte
primaernoegler, det er det eneste hvor man lige skal holde tungen lidt lige.
Mvh,
Soren