JSF kilka pytań początkującego

0

Cześć,
Zawsze tylko czytałem wpisy na tym forum, ale nadszedł czas kiedy muszę stworzyć nowy post. Do tworzenia projektów JSF wykorzystuję serwer Tomcat (i nie mogę tego zmienić - nie zależy to ode mnie). Do tej pory były to proste projekty typu CRUD i tu nie ma problemu, ale co z bardziej rozbudowanymi projektami? Powiedzmy, że muszę stworzyć projekt w którym po wysłaniu pliku na serwer następuje utworzenie z niego pliku zip (plik jest duży więc zajmuje to z 10s.) potem przenieść ten plik z lokalizacji tymczasowej, do tego w tle kilka czasochłonnych zadań których wyniki trzeba wyświetlić na stronie JSF. Jako, że managed beans nie powinny wykonywać "zadań" a jedynie zwracać i pobierać wartości (getter,setter) postanowiłem wykorzystać adnotację @PostConstruct + wywołanie zwykłych obiektów Java. Czy jest to właściwe podejście? Czy w w takiej sytuacji nie powinienem wykorzystać EJB, ale co jeśli tak jak ja mam do dyspozycji tylko Tomcat-a? Nigdzie nie mogę znaleźć przykładu bardziej złożonej aplikacji JSF niż CRUD na bazie danych.

0

To że korzystasz z tomcata nie robi specjalnie problemu w kontekście używania EJB czy jakiejś innej technologii backendowej (Spring?). Masz na przykład OpenEJB które możesz spokojnie zastosować. Ale dziwi trochę fakt że "musisz" uzywać tomcata skoro używasz technologii JEE.

0
Shalom napisał(a):

To że korzystasz z tomcata nie robi specjalnie problemu w kontekście używania EJB czy jakiejś innej technologii backendowej (Spring?). Masz na przykład OpenEJB które możesz spokojnie zastosować. Ale dziwi trochę fakt że "musisz" uzywać tomcata skoro używasz technologii JEE.

Dobrze, ale czy właściwym podejściem jest tworzyć tego typu aplikacje bez EJB tylko z POJO i @PostConstruct? Nie mogę tego zrozumieć :)

0

Nie do końca cię rozumiem. Pytasz czy to normalne że chcesz zawierać logikę biznesową w zwykłych obiektach? Jeśli możesz, to czemu nie? Tylko że użycie EJB czy jakichś innych Serwisów (i CDI/Spring DI) jest bardziej naturalne bo nie tworzysz co chwilę takich samych obiektów. Bo rozumiem że taki masz zamysł? Żeby te swoje obiekty odpowiadające za logikę co chwile tworzyć od nowa?

0
Shalom napisał(a):

Nie do końca cię rozumiem. Pytasz czy to normalne że chcesz zawierać logikę biznesową w zwykłych obiektach?

Dokładnie tak, a jestem zmieszany ponieważ wszystkie przykłady w necie bez EJB to tylko i wyłącznie CRUD, nigdzie nie znalazłem bardziej rozbudowanego przykładu dlatego pojawiły się wątpliwości, czy oby na pewno to co chcę zrobić jest właściwe. Zainteresuję się OpenEJB może to pozwoli mi podejść do problemu inaczej i stworzyć lepszy kod, ale czas goni :)

0
  1. Przeciez nikt nie pisze tutoriali z pisaniem dużych i skoplikowanych aplikacji...
  2. Tak jak wspomniałem wcześniej, problem z logiką w POJO jest taki że siłą rzeczy gdzieś musisz te obiekty i serwisy odpowiadające za logikę tworzyć. Dlatego naturalne staje się użycie CDI+EJB albo Springa. Bo tworzenie takich obiektów co chwila wraz z cyklem życia Managed Beanów to bardzo słaby pomysł.
  3. Żle trochę do tego podchodzisz, bo patrzysz na technologie jako na "przeszkody", na zasadzie "jak to napisać nie używając XYZ". To głupie podejście bo te technologie powstały po to żeby było łatwiej a nie trudniej. To tak jakbyś pytał:
    "Jak napisać aplikację webową w Javie ale nie używając żadnego frameworka. Bo wszystkie przykłady w necie korzystają z jakiegoś JSFa, Spring MVC i innych frameworków i zastanawiam się czy zwracanie ręcznie budowanego htmla z servletu to dobry pomysł". ;)
0
Shalom napisał(a):
  1. Żle trochę do tego podchodzisz, bo patrzysz na technologie jako na "przeszkody", na zasadzie "jak to napisać nie używając XYZ". To głupie podejście bo te technologie powstały po to żeby było łatwiej a nie trudniej. To tak jakbyś pytał:
    "Jak napisać aplikację webową w Javie ale nie używając żadnego frameworka. Bo wszystkie przykłady w necie korzystają z jakiegoś JSFa, Spring MVC i innych frameworków i zastanawiam się czy zwracanie ręcznie budowanego htmla z servletu to dobry pomysł". ;)

Pięknie to ująłeś :) Masz absolutną rację :) Trochę to wynika z tego, że nie do końca rozumiem EJB, ale po twoim poście zaczynam edukację. mam nadzieję, że zdążę z projektem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1