11. september 2002 - 23:21Der er
3 kommentarer og 1 løsning
Executing commands fra EJB
Jeg kan ikke få min EJB applikation til at køre commands (f.eks. starte et program) Det er meningen at en Klient skal kalde en metode på bønnen som derefter skal starte et program på serveren.
I alm. java har jeg fået det til at virke med følgende: Runtime.getRuntime().exec("cmd /c start c:\\test.bat");
EJB er til distribuerede transaktioner og persistens. Kald ud af en EJB container bryder ofte disse service behov.
At kalde et ekstern program kræver som regel en god forklaring. Hvis det er for at lave en launcher applikationer, så er EJB ikke en god teknologi til dette. Prøv JMX istedet.
Det kan du ikke gøre generelt idet det vil bryde J2EE specifikationen. Andre muligheder:
Du kan lave en connector som kan optræde som en forbindelse mellem din bønne og dit program.
Afhængig af din app. server kan du f.eks. i WebLogic lave et startup klasse som instanserer et objekt som dine bønner kan kalde. Jeg vil dog anbefale dig connector'en idet den er app. uafhængig.
JMX kan bruges i en del tilfælde men det er stadig meget app. specifik hvad de enkelte app. server tilbyder.
Det er faktisk ikke nævnt som i EJB programming restrictions.
Men taget i betragtning af hvad der ellers er nævnt der, så er det nok en rimelig antagelse, at det ikke er nævnt fordi ingen havde forestillet sig at nogen ville bruge det.
Det er vel OK ifølge JCA spec at gøre det i en connector. Men det er ikke hvad connector's er tiltænkt. Jeg vil ikke kalde et operativ-system for et EIS.
EJB er simpelthen ikke den rigtigt teknologi til noget sådant.
RMI server program eller socket server progarm passede nok bedre til problem-stillingen.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.