hello,
Egy adatgyűjtő alkalmazást migrálnék EJB3 alá. Van arra mód, hogy egy singleton-bean automatikusan elinduljon amikor az appserver elindul, vagy telepítik az appserver-re?
Ebben fut egy háttér-task, ami a folyamatos adatgyűjtést végzi.
- 6168 megtekintés
Hozzászólások
@startup
- A hozzászóláshoz be kell jelentkezni
Igen, ezt én is megtaláltam, de vagy kell még valami, vagy Glassfish alatt másképp kell.
@Singleton
@LocalBean
@Startup
public class MonitorSingleton implements MonitorSingletonLocal {
...
@Resource
TimerService timerService;
private long pollingTime;
/**
* Default constructor.
*/
public MonitorSingleton() {
System.out.println("Starting MonitorSingleton"); //$NON-NLS-1$
try {
...
this.startTimer();
}
catch (Exception e) {
log.error(e);
}
}
...
@Timeout
protected void background() {
log.debug("Start polling"); //$NON-NLS-1$
try {
...
}
catch (Exception e) {
log.error(e);
}
finally{
this.startTimer();
}
}
private void startTimer() {
@SuppressWarnings("unused")
Timer timer = this.timerService.createTimer(this.pollingTime, "Restart"); //$NON-NLS-1$
}
- A hozzászóláshoz be kell jelentkezni
@Startup EJB 3.1 ota letezik, 3-as GF kell hozza.
Szerk: nem hianyzik onnan egy @PostConatruct..?
----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
- A hozzászóláshoz be kell jelentkezni
about:
GlassFish Server Open Source Edition 3.1.1 (build 12)
> nem hianyzik onnan egy @PostConatruct..?
Ha a postconstruct-ra gondoltal, akkor a timert ne a konstruktorban inditsam?
- A hozzászóláshoz be kell jelentkezni
Emlekeim szerint a konstruktor futasa alatt a @Resource-os adattagok meg nem voltak injektalva, de ennek nezzz utana!
Mi a hibajelenseg ,exception, valami..?
----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
- A hozzászóláshoz be kell jelentkezni
Atraktam a postconstruct ala, de semmi. Pont ez a bajom, hogy nincs log, nincs kiiras.
Eclipse alol probalkozom, eddig Netbeans alatt csinaltam EJB app-okat, most probalok atkoltozni eclipse ala. A console fulon:
Waiting for domain1 to start .....................
Successfully started the domain : domain1
domain Location: /home/zamek/glassfish-3.1.1/glassfish/domains/domain1
Log File: /home/zamek/glassfish-3.1.1/glassfish/domains/domain1/logs/server.log
Admin Port: 4848
Debugging is enabled. The debugging port is: 9009
Command start-domain executed successfully.
Meg allitgatok a gf loglevel-en...
- A hozzászóláshoz be kell jelentkezni
Az alkalmazast nem kell kulon elinditani?
----------------------
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
- A hozzászóláshoz be kell jelentkezni
Pont azt szeretnem, hogy ha az appservert ujrainditjak, vagy az ejb-t deploy-oljak, automatikusan induljon el, mert ez egy adatgyujto, mindig futnia kell, akkor is, ha senki nem akar hozzakapcsolodni.
Hatterben fut egy task, ami adatgyujt es adatbazisba tolja a megszerzett adatokat, amit valakik gwt klienssel kerdezhetnek/parameterezhetnek.
- A hozzászóláshoz be kell jelentkezni
Csak az app miatt koltozol eclipse ala, vagy van mas oka is?
NB-hez is van RCP...
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Regebben is inkabb eclipse-t hasznaltam, csak a swing es glassfish miatt hasznaltam nb-t. Amiota van ingyenes form tervezo, ujra kacsintgatok az eclipse fele.
- A hozzászóláshoz be kell jelentkezni
igy van, a konstruktorbol meg nem elerhetoek az injektalt dolgok. de ez logikus is, ugyanis a kontener csak a konstruktor lefutasa utan tud reflectionnel jatszani.
- A hozzászóláshoz be kell jelentkezni
milyen adatot? DAQ? rendszerstatisztikák?
- A hozzászóláshoz be kell jelentkezni
Ipari vezerles, adott idokozonkent az osszes eszkoz (zommel plc, de van mas is) pollingolasa es logolasa.
- A hozzászóláshoz be kell jelentkezni
ehhez egy cronjob miert nem eleg?
- A hozzászóláshoz be kell jelentkezni
cronjob, persze :D faceplam
- A hozzászóláshoz be kell jelentkezni
kibicnek kuss a neve :)
- A hozzászóláshoz be kell jelentkezni
nem lehetne valami eufemizmust helyette? :)
- A hozzászóláshoz be kell jelentkezni
hámost percenként ránézni egy device-ra, hogy él-e még, nem elég a cron? :)
de lentebb írva vagyon, hogy ERP rendszer lesz.
- A hozzászóláshoz be kell jelentkezni
Mert a userek igenye folyton no. Eddig a vizualizalast egy java app vegezte, de most mar szeretnenek tavolrol web-en monitorozni, ill. eygszerre tobb helyrol nezegetni/beavatkozni.
A valasztasok:
1. A meglevo java app-ba beepitek egy sajat fejlesztesu web servert (elsore es sokadszorra is butasagnak tunik)
2. Migralom a meglevo adatgyujtot egy appserver ala.
A 2. eseteben lehet eclipse rcp klienssel, gwt-vel monitorozni/parameterezni. Ha van appserver, akkor kesobb szabvanyos feluletekre tudok szolgaltatni.
- A hozzászóláshoz be kell jelentkezni
Így érthető.
- A hozzászóláshoz be kell jelentkezni
"A meglevo java app-ba beepitek egy sajat fejlesztesu web servert "
Minek? A JRE 6 beepitetten hoz egyet
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Nem rossz, csak ezzel egy gwt/rcp klienst kicsit nehez kiszolgalni.
- A hozzászóláshoz be kell jelentkezni
Teny es valo, nem egy feature gazdag tortenet. De hogy ezt milyen frameworkkel otvozod, es milyen servleteket tolsz ala, az mar csak rajtad mulik.
Raadasul sokan racuppantak a temara, a multkor googleztam ra (nem egy egyszeru...), mar par dologhoz van tamogatas.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Ejb osztaly:
import java.util.Date;
import javax.annotation.PostConstruct;
import javax.ejb.Schedule;
import javax.ejb.Singleton;
import javax.ejb.Startup;
@Singleton
@Startup
public class TestEjbStartup {
@PostConstruct
public void alma() {
System.out.println("######## TestEjbStartup");
}
@Schedule(second = "*/1", minute = "*", hour = "*", persistent = false)
public void doWork() {
System.out.println("timer: " + new Date());
}
}
Ezt asadmin deploy parancssal bevagba a gf-be, mukodott, miutan ujrainditottam a gf-t akkor is elindult (gf 3.1.1). Remelem segit. Az indentalas nem tudom hova tunt :(
- A hozzászóláshoz be kell jelentkezni
ok, ugy tunik az eclipse-szel van valami, mivel a minta ejb/web app sem mukodik. Visszalepek a kezdetekre, aztan folytatom :)
- A hozzászóláshoz be kell jelentkezni
Kiprobaltam NB alatt egy egyszeru test singleton-t es mukodott rendesen. Ezutan visszatertem az eclipse ala es ujra problakoztam.
Az elso hiba az volt, hogy a gepemen gf 3.1.1 volt es en gf server opensource edition-t valasztottam. Ezt beallitva mar elindul a singleton es mukodik is, lehet debug-olni, de a kodban elhelyezett system.out.println uzeneteket nem latom sehol. A NB alatt ez jo kis debugolasi lehetoseg volt.
Probaltam a a server-en jobb gombra behozni a log-ot, de abban persze ezek nem latszanak.
Mukodik ez Eclipse alatt?
- A hozzászóláshoz be kell jelentkezni
System.out? EE-ben?
WTF did I just read?
- A hozzászóláshoz be kell jelentkezni
Csak is fejlesztes kozben! Igen hasznos volt NB alatt.
Nyilvan elesben kikapcsolom.
Persze lehet egy tail -f -et ereszteni a logfile-ra!
- A hozzászóláshoz be kell jelentkezni
egyik ablakban tail -f. amugymeg Logger osztalyt ajanlom.
- A hozzászóláshoz be kell jelentkezni
Azt meg tudom oldani a gyari loggerrel, hogy ha a file eler egy meretet, akkor zarja le es nyisson egy ujat, ill. hogy n peldanyt tart meg a logfile-okbol es a legregebbit torli?
Ha ezt meg tudnam oldani a Logger-rel, az nagy segitseg lenne, mivel honapokig megy ugy a szerkezet, hogy admin nem nez ra. Ez egy panel pc touch screen-nel, a tapperolo kezelo biztos nem fog karbantartani.
Vagy eseteleg egy quartz task, amely ezt megteszi?
- A hozzászóláshoz be kell jelentkezni
Nem ismerem a GF-t, de azert ez annyira alap, hogy tudnia illik. Ha nem, akkor logrotate linux alatt megoldja. Windows alatt nem tudom.
- A hozzászóláshoz be kell jelentkezni
Igaz.
Windows fel sem merult, hal'istennek en adom a teljes hw/sw-t.
- A hozzászóláshoz be kell jelentkezni
Nicsak mit talaltam:
Setting Log File Rotation:
http://docs.oracle.com/cd/E18930_01/html/821-2416/gklmn.html#gklni
Ezek szerint tudja...
- A hozzászóláshoz be kell jelentkezni
megeloztel az RTFM-el, de igen, tudja a glassfish.
- A hozzászóláshoz be kell jelentkezni
A Log4J infrastruktúra az, amit akarsz használni (látom a gondolataidat), a te esetedben az stdout már suppressed, ne szopj vele, hogy keresd/engedélyezd.
- A hozzászóláshoz be kell jelentkezni
Beburkoltam a fejem sztaniolpapirral! Most is latod a gondolataimat? :)
- A hozzászóláshoz be kell jelentkezni
az másik film :)
- A hozzászóláshoz be kell jelentkezni
Aaa, most mar csak hallja :-)
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Nem tudom, hogy valaki írta-e már. A tisztán EJB3 megoldás az, hogy lesz egy war-od is az ear-on belül, amiben írsz egy ServletContextListenert. Innen pedig fel tudod már hívni az EJB-det startupkor. Ez elvileg nem konténerspecifikus megoldás.
- A hozzászóláshoz be kell jelentkezni
az akkor jo, ha a kontenered servlet kontener is. amennyiben csak EJB, ugy a @Startupos @Singleton a szabvany megoldas.
- A hozzászóláshoz be kell jelentkezni