Na moją decyzję o instalacji JBoss AS 4.0.5 wpłynęła również notka o JBoss Seam - A Conversation with Seam, którego powoli rozpoznaję na kolejne IV spotkanie Warszawa JUG. Jak się okazało instalacja całego środowiska i aplikacji opisanej w notce poszła nadzwyczaj zgrabnie ( chociaż początkowo miałem problemy z uruchamianiem JBoss AS w NetBeans IDE, aż zauważyłem, że korzystam z profilu all zamiast default, gdzie zainstalowałem łatę EJB3. Straciłem ponad 2 godziny próbując poukładać informacje jakie miałem nt. integracji NB i JBS. Kolejny raz sen przyniósł rozwiązanie!)
Instalacja JBoss AS 4.0.5 z EJB 3.0 RC9 Patch 1 i uruchomienie w NetBeans 5.5.1 Daily Build jest wystarczająco nieskomplikowana, aby spróbować jej bez pomocy JEMS Installer (nie potrafię tego wytłumaczyć, ale nie specjalnie podoba mi się instalacja oprogramowania w ten sposób - przyzwyczaiłem się, że wystarczy rozpakować paczkę dystrybucyjną do wybranego katalogu i można pracować, a próba ukrycia przede mną poszczególnych kroków instalacyjnych zazwyczaj mnie zniechęca). Po kilku minutach można uruchamiać projekty Java EE 5 na JBoss AS.
- Rozpocząłem od rozpakowania wersji JBoss AS 4.0.5.GA do wybranego przeze mnie katalogu, np. c:/apps/jboss
- Pobrałem i rozpakowałem łatę EJB 3.0 Preview RC9 Patch 1 do tymczasowego katalogu, z którego rozpocznie się jej właściwa instalacja - uaktualnienie JBoss AS, np. c:/temp/jboss-EJB-3.0_RC9_Patch_1
- Ustawiłem zmienną JBOSS_HOME, tj. set JBOSS_HOME=c:\apps\jboss
- I w katalogu, gdzie rozpakowałem łatę EJB 3.0 dla JBoss AS (u mnie c:/temp/jboss-EJB-3.0_RC9_Patch_1), wykonałem polecenie
ant -f install.xml -Djboss.server.config=default
Należy pamiętać o zmiennej jboss.server.config ponieważ domyślnie wskazuje na profile all (dlaczego wybrałem default nie mam pojęcia - chyba znalazłem zalecenie o korzystaniu profilu default, ale nie mogę sobie teraz tego przypomnieć).
Polecenie kończy się po około 10 sekundach. - Na stronie Migrating From EJB 3.0 RC8 -> RC9 znajdują się dodatkowe wskazania odnośnie instalacji EJB 3.0 RC9 chyba, że łatano profil all (patrz punkt 4). Ja łatałem profil default, więc musiałem pozbyć się dwóch plików z katalogu %JBOSS_HOME%\server\default\deploy:
- ejb3-clustered-sfsbcache-service.xml
- ejb3-entity-cache-service.xml
- Testowe uruchomienie JBoss AS po instalacji łaty EJB 3.0 nie zaszkodzi.
%JBOSS_HOME%/bin/run -config=<konfiguracja JBoss z łatą EJB3>
U mnie config nie był potrzebny, bo domyślnie skrypt startujący zakłada, że będzie uruchomiony profil default (inaczej niż domyślna wartość podczas uruchomienia łaty EJB 3.0 - dziwne, nieprawdaż?).12:58:05,234 INFO [Server] JBoss (MX MicroKernel) [4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)] Started in 20s:234ms
- Na koniec definicja JBoss AS w NetBeans IDE, co szczęśliwie jest najmniej zajmującą czynnością.
12:53:42,187 ERROR [MainDeployer] Could not create deployment: file:/C:/apps/jboss/server/default/deploy/ejb3-clustered-sfsbcache-service.xml
org.jboss.deployment.DeploymentException: - nested throwable: (java.lang.reflect.UndeclaredThrowableException)
at org.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java:196)
at org.jboss.system.ServiceController.install(ServiceController.java:226)
...
Caused by: java.lang.NoClassDefFoundError: org/jboss/cache/TreeCache
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
...
12:53:42,578 ERROR [MainDeployer] Could not create deployment: file:/C:/apps/jboss/server/default/deploy/ejb3-entity-cache-service.xml
org.jboss.deployment.DeploymentException: No ClassLoaders found for: org.jboss.cache.TreeCache; - nested throwable: (java.lang.ClassNotFoundException: No ClassLoaders found for: org.jboss.cache.TreeCache)
at org.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java:196)
at org.jboss.system.ServiceController.install(ServiceController.java:226)
...
Caused by: java.lang.ClassNotFoundException: No ClassLoaders found for: org.jboss.cache.TreeCache
at org.jboss.mx.loading.LoadMgr3.beginLoadTask(LoadMgr3.java:212)
at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:511)
at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:405)
...
Nie do konca. JBOSS 4 ma jako kontener servletow ma Tomcata 5, a ten z kolei nie radzi sobie ze skladnia @EJB. Wiec nawet po instalacji EJB3 nie mozesz mowic o JEE.
OdpowiedzUsuńA racja! Powinienem pamiętać to, kiedy próbowałem zaprezentować aplikację internetową z elementami Java EE na spotkaniu Warszawa JUG i NetBeans IDE zgłosił mi JBossa jako nie-Java EE. Pamiętam teraz, że nie mogłem się otrząsnąć przez moment. No cóż wydaje się, że zwolennicy Java EE muszą prototypować na GlassFish.
OdpowiedzUsuńA może nie? Czy to oznacza, że jeśli JBoss AS i Java EE 5 to tylko 5.0.0.Beta1?
Dzięki za uwagę, Antoni!
Jacek
prostszy sposób na instalację (bez okienek) jbossa 4.0.5 z EJB3:
OdpowiedzUsuńjava -jar jems-installer-1.2.0.GA.jar -installGroup ejb3 installpath=c:/jboss-4.0.5.GA
Wielkie dzięki! Kiedy opisywałem moje doświadczenia w Notatniku byłem sceptyczny do korzystania z JEMS Installera (czym więcej jest przede mną ukrywane tym mniej jestem zainteresowany korzystaniem z narzędzia). Przekonałeś mnie, abym spróbował i jestem mile zaskoczony! W ciągu 10-15 minut zainstalowałem JBoss AS 4.0.5 GA z EJB 3.0 i mogłem bezbłędnie go uruchomić!
OdpowiedzUsuńC:\apps>java -jar jems-installer-1.2.0.GA.jar -installGroup ejb3 installpath=c:/apps/jboss-4.0.5.GA_ejb3
Looking for auto install resource...
/res/jbossauto-install.xml URL: jar:file:/C:/apps/jems-installer-1.2.0.GA.jar!/res/jbossauto-install.xml
PackageListener, install.log=C:\DOCUME~1\JLASKO~1\LOCALS~1\Temp\jems-install.log
[ Starting automated installation ]
creating Logfile: 'IzPack_Logfile_at_1171016018453.txt' in: 'C:\DOCUME~1\JLASKO~1\LOCALS~1\Temp\'
[ Starting to unpack ]
[ Processing package: ejb3-deployer (1/58) ]
[ Processing package: invokers-service (2/58) ]
[ Processing package: jta-service (3/58) ]
[ Processing package: mail-service (4/58) ]
[ Processing package: jboss-cache (5/58) ]
[ Processing package: jbossws5 (6/58) ]
[ Processing package: snmp-adaptor.sar (7/58) ]
[ Processing package: properties-service (8/58) ]
[ Processing package: javamail (9/58) ]
[ Processing package: jmx-console (10/58) ]
[ Processing package: jms-http-invoker (11/58) ]
[ Processing package: usertx-service (12/58) ]
[ Processing package: jboss-local-jdbc.rar (13/58) ]
[ Processing package: ear-deployer (14/58) ]
[ Processing package: security (15/58) ]
[ Processing package: naming (16/58) ]
[ Processing package: hibernate (17/58) ]
[ Processing package: jca-service (18/58) ]
[ Processing package: jboss-aop-jdk50-deployer (19/58) ]
[ Processing package: ejb-timer-service (20/58) ]
[ Processing package: iiop-service.xml (21/58) ]
[ Processing package: jms-socket-invoker (22/58) ]
[ Processing package: scheduler-service (23/58) ]
[ Processing package: web-console-jdk50 (24/58) ]
[ Processing package: jsr77-service (25/58) ]
[ Processing package: jgroups (26/58) ]
[ Processing package: quartz-rar (27/58) ]
[ Processing package: cache-invalidation-service.xml (28/58) ]
[ Processing package: jmx-core (29/58) ]
[ Processing package: bsh-deployer (30/58) ]
[ Processing package: jboss-ha-local-jdbc (31/58) ]
[ Processing package: mail-inflow-adaptor (32/58) ]
[ Processing package: jboss-ds (33/58) ]
[ Processing package: xmlresolver (34/58) ]
[ Processing package: jms-injvm-invoker (35/58) ]
[ Processing package: jsr88-service (36/58) ]
[ Processing package: jboss-xa-jdbc (37/58) ]
[ Processing package: jboss-ha-xa-jdbc (38/58) ]
[ Processing package: docs (39/58) ]
[ Processing package: binding-service (40/58) ]
[ Processing package: minimal (41/58) ]
[ Processing package: dynclassloader-service (42/58) ]
[ Processing package: ejb-deployer (43/58) ]
[ Processing package: uuid-key-generator (44/58) ]
[ Processing package: war-deployer (45/58) ]
[ Processing package: client-deployer-service (46/58) ]
[ Processing package: attribute-persistence-service (47/58) ]
[ Processing package: xmlservice (48/58) ]
[ Processing package: jmx-invoker-service (49/58) ]
[ Processing package: jboss-bean-deployer (50/58) ]
[ Processing package: client (51/58) ]
[ Processing package: jbossretro (52/58) ]
[ Processing package: rmi-http-invoker (53/58) ]
[ Processing package: jms-asf-rar (54/58) ]
[ Processing package: jbossmq-service (55/58) ]
[ Processing package: jdbc-metadata-service (56/58) ]
[ Processing package: default-jms-destintations (57/58) ]
[ Processing package: jboss-remoting (58/58) ]
calltarget:
jbossws-post-install:
[echo] Unpacking wstools to bin...
[unzip] Expanding: C:\apps\jboss-4.0.5.GA_ejb3\client\jbossws-client.jar into C:\apps\jboss-4.0.5.GA_ejb3\bin
[echo] Removing jbossws14 client jars...
[delete] Deleting 4 files from C:\apps\jboss-4.0.5.GA_ejb3\client
[delete] Deleting C:\apps\jboss-4.0.5.GA_ejb3\client\jboss-backport-concurrent.jar
[delete] Deleting C:\apps\jboss-4.0.5.GA_ejb3\client\jbossretro-rt.jar
[delete] Deleting C:\apps\jboss-4.0.5.GA_ejb3\client\jbossws14-client.jar
[delete] Deleting C:\apps\jboss-4.0.5.GA_ejb3\client\namespace.jar
[echo] jbossws done
calltarget:
chmod-bin:
[echo] Updating script executable modes
[echo] bin dir is c:/apps/jboss-4.0.5.GA_ejb3/bin
[ Unpacking finished. ]
creating Logfile: 'IzPack_Logfile_at_1171016018453.txt' in: 'C:\DOCUME~1\JLASKO~1\LOCALS~1\Temp\'
[ Writing the uninstaller data ... ]
[ Automated installation done ]
Zastanawiam się jednak, gdzie mógłbym doczytać o możliwych wartościach parametru installGroup?
Jacek
tu
OdpowiedzUsuńWłaśnie tego potrzebowałem! Krótko i na temat ;-)
OdpowiedzUsuńJacek