Nie było lekko, ale się udało! Skończyłem artykuł, o który zostałem poproszony jakiś czas temu, a którego tematyka była mi dosyć bliska - skorzystanie z możliwości Apache Maven 2 przy tworzeniu aplikacji Java EE 5. Aplikacja należy do niezwykle nieskomplikowanych, ale sądzę, że tym samym cel został osiągnięty. Demonstracja M2 w roli narzędzia wspomagającego tworzenie aplikacji z JSF 1.2 i EJB 3.0 z uruchomieniem jej na serwerze Glassfish jest do przeczytania w kolejnym artykule na moim Wiki - Tworzenie aplikacji Java EE 5 z Apache Maven 2 i Glassfish.
W nadchodzący wtorek - 5.12 o 18:00 - jest planowane spotkanie grupy Warszawskiej Grupy Użytkowników Java (Warszawa JUG), więc będzie okazja przedyskutować szczegóły. Może nawet uda mi się dokończyć artykuł o facelets. Z pewnością będzie ciekawie móc zaprezentować temat na żywo. Miłej lektury i do zobaczenia!
Cześć Jacek.
OdpowiedzUsuńPróbuje przejść Twój tutorial. Zgłaszam problem z sekcją "modules"
Ta sekcja u mnie nie działa. Natomiast, sekcja ta stworzy się automatycznie, wykonując kroki opisane w dalszej części Twojego tutotiala.
Dziękuję za uwagę. Rzeczywiście dodałem kompletny plik projektu pom.xml po tym jak moduły zostały dodane w późniejszych krokach. Usunąłem znacznik modules z pom.xml.
OdpowiedzUsuńJeszcze raz dziękuję za komentarz. Czym więcej ich tym lepszy materiał końcowy.
Miłej zabawy!
p.s. Na koniec lektury artykułu zobowiązuję Ci do napisania wrażeń (wady i zalety materiału) ;-)
Jacek
Mam problem na kroku mvn package dla modułu ejb3.
OdpowiedzUsuń<<<
Missing:
----------
1) org.apache.geronimo.specs:geronimo-ejb_3.0_spec:jar:1.0-SNAPSHOT
Try downloading the file manually from the project website.
Then, install it using the command:
mvn install:install-file -DgroupId=org.apache.geronimo.specs -DartifactId=geronimo-ejb_3.0_spec \
-Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=/path/to/file
Path to dependency:
1) pl.jaceklaskowski.javaee5:ejb3:ejb:1.0-SNAPSHOT
2) org.apache.geronimo.specs:geronimo-ejb_3.0_spec:jar:1.0-SNAPSHOT
----------
1 required artifact is missing.
for artifact:
pl.jaceklaskowski.javaee5:ejb3:ejb:1.0-SNAPSHOT
from the specified remote repositories:
central (http://repo1.maven.org/maven2)
<<<
Proszę o radę.
Dałem sobie z tym problemem już radę. Domyślna konfiguracja maven2 nie korzysta z repozytori snapshot. Jato to zmienić opisano na stronie:
OdpowiedzUsuńhttp://maven.apache.org/guides/development/guide-plugin-snapshot-repositories.html
Poszło: mvn -Papache
Jestem na kroku budowanie modułu webapp.
OdpowiedzUsuńcd webapp
mvn install:install-file -DgroupId=pl.jaceklaskowski.javaee5 -DartifactId=ejb3 -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=../ejb3/target/ejb3-1.0-SNAPSHOT.jar
mvn package
Nie wiem, czemu tak, ale pomogło.
Dziękuję za cierpliwość! Artykuł został poprawiony (m.in. o dodanie repozytorium zdalnego w pliku pom.xml w projekcie głównym).
OdpowiedzUsuńU mnie działało, ponieważ ta zależność była u mnie lokalnie, więc M2 nie potrzebował odpytywać żadnego innego repozytorium niż lokalne.
Jacek
Wyłapałem jeszcze literówkę:
OdpowiedzUsuńjest: index.jsp, powinno być index.jsf w "Utworzenie aplikacji internetowej"
Poprawione. Dzięki!
OdpowiedzUsuńJakieś wrażenia? Uwagi? Propozycje następnych artykułów? Może być na priv.
Jacek
Sorki, wczesniej było dobrze - "index.jsp". Dla programisty PHP (czyli mnie) dość magiczne jest to przekierowanie. W web.xml mapujemy *.jsf na Facas a faces i tak czyta nam pliki jsp. Przepraszam za zamieszanie.
OdpowiedzUsuńWrażenie świete. Tutorial bardzo przydatny. Ucząc się Javy zdecydowanie wole korzystać z vim'a. Dopiero jak będę miał do napisania coś poważnego to wybiorę jakieś IDE. Patrząc na swoją przyszłość na najbliższe 10, 15 lat Maven2 na pewno będzie w niej obecny.
Tak więc jeszcze raz dziękuje za tutorial. (uruchom donate w wiki).
Następne artykuły: jestem przekonany, że warto by było rozszerzyć ten artykuł o:
- encje
- uruchamianie na JBoss
Nawet nie wiesz jaki jesteś przekonujący. Kiedy teraz myślę o zmianie index.jsp na index.jsf to zastanawiam się dlaczego to zmieniłem i wydawało mi się nawet, że robię poprawnie ;-) Wczoraj kończyłem artykuł wieczorem i musiałem się przegrzać. Już poprawiam.
OdpowiedzUsuńOczywiście zgadzam się z propozycją dodania do tego projektu komponentów encyjnych i uruchomić to na JBoss AS. Zrobię to nawet w jednym podejściu. Stay tuned!
Jacek
JBoss
OdpowiedzUsuńNa chwilę obecną nie można uruchomić Twojej aplikacji w serwerze JBoss bez zmiany kodu w niej samej.
Przyczyną jest:
The @EJB annotation is similated. Tomcat does not yet understand injection annotations.
http://docs.jboss.org/ejb3/app-server/tutorial/ear/ear.html
Próbując uruchomić Twoją aplikację na JBoss wykonałem następujące czynności.:
1. pobrałem Jboss 4.0.5
2. pobrałem i zainstalowałem EJB3
3. w module webapp jawnie zadeklarowałem zależność od myfaces.
4. w module ejb3 użyłem pluginu maven-ejb z snapshot - nowsza wersja. Usunałem plik ejb-jar.xml. ustawiłem parametr modułu ejbVersion na 3.0
5. w module ear dodałem plugin mavena odpowiedzialny za deployment do Jboss'a.
Czy mógłbyś podesłać mi pom'y i web.xml?
OdpowiedzUsuńZ chęcią spiszę to i opublikuję z odpowiedią adnotacją o Twoim wkładzie.
Jacek
Przesłałem Ci źródła na e-mail.
OdpowiedzUsuńNa razie próbuje uruchomić część webową twojej aplikacji na Tomcata 6. Jak na razie bez powodzenia a problemy zaczynają się już na etapie JSF.