Widoczność jednego projektu w drugim (Eclipse)

0

Witam serdecznie, mam taki problem: pracuję w Eclipsie nad serwisem internetowym korzystając z EJB i JSP...Mam jeden projekt, w którym jest ziarno (Session Bean) oraz Entity - odwzorowujące tabele w bazie danych...Mam też drugi projekt (osobny), w którym jest pakiet z interfejsem oraz pakiet z Klientem..W interfejsie po stronie klienta chcę użyć:
public List<Wykladowca> metoda()
gdzie Wykladowca to klasa w innym projekcie (po stronie serwera; mam oczywiście taką tabelę - Wykladowca - w bazie danych)...jak sprawic by w interfejsie po stronie klienta byla ta kalsa widoczna? Jak klikne na projekt, drugi przycisk - properties i tam w zakladce Java Build Path zaznacze odpowiedni projekt, klasa po stronie Klienta jest juz widoczna, ale wystepuje z drugiej storny jakis blad, ktorego nie moge zlokalizowac...Myslalem tez, zeby projekt (po stronie serwera) spakowac fat jarem do pliku .jar, ale przeciez Klient nie moze miec implementacji serwera (nawet w pliku .jar)...macie jakies pomysly? Pozdrawiam

0

Myślę że ten "jakiś błąd" jest dokładniej opisany.
U mnie w pracy z powodzeniem jest stosowane rozbicie (upraszczam bardzo :) ) na projekty:

  • Model (Twoje beany),
  • Server (serwisy, baza itd),
  • Client(ogólno pojęte GUI) .
    I zarówno serwer jak i klient są zależne od projektu Modelu, który z kolei nie jest zależny od żadnego innego. Dzięki temu przy wypuszczaniu wersji serwer i client mają dokładnie takie same klasy modelowe. (brak problemów z serializacją)
0

Klient nie musi mieć klas z session bean'ami.
Musi mieć jedynie ich zdalne interfejsy.

Co do klas Entity, to są dwa podejścia:

  1. Klient też używa klas Entity. Jest to najprostsze.
  2. Klient dostaje/wysyła klasy DTO. Serwer musi jednak dokonywać konwersji DTO <-> Entity.
    Klasy DTO nie muszą być odwzorowane 1 do 1 z klasami Entity. Powiedzmy, że mamy Entity "Klasa" i "Uczeń". Klasa ma listę uczniów jednak relacja jest leniwa (lazy). W takim przypadku można mieć dwie oddzielne klasy DTO odpowiadające klasie Klasa:
    -KlasaDTO zawierająca informacje o klasie, ale bez listy uczniów
    -KlasaIUczniowieDTO - klasa wraz z listą uczniów
    Klasy DTO powinny być zwykłymi POJO bez żadnych adnotacji JPA.

Tak, czy inaczej trzeba stworzyć trzy projekty.
W projekcie wspólnym muszą się znaleźć interfejsy session bean'ów oraz w zależności od przyjętego rozwiązania klasy Entity lub klasy DTO.

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