użycie web service w java web application

0

Mam do rozwiązania zadanie w jednej aplikacji zrobiłem logikę biznesową czyli managed bean - w przykładowej aplikacji java web application aukcje jest to zadanie na zaliczenie

są w niej dwa główne managed bean aukcje i uzytkownicy oraz entity bean odpowiadające za kontakt z tabelami bazy,
zbudowałem strony w jsf które dokonują operacji na tych danych

teraz mam za zadanie skorzystać z logiki biznesowej tej aplikacji przez inną aplikacje po wyprowadzeiu jej funkcji beanów i entity jako web service

druga aplikacja z użyciem soap na tym samym localhost będzie korzystać z nich

dla uproszczenia przeniosę strony napisane w jsf z pierwszej aplikacji do do drugiej i zmodyfikuje je ( jak ? i czy w ogóle będzie potrzeba jak beany będą dla nich wyglądać jakby były beanami z pierwszej aplikacji jest to możliwe ?), w zadaniu chodzi o samo wykorzystanie web service

jak to wykonać zbudować odpowiadające managed bean w drugiej aplikacji i w niej użyć funkcji i entity z web service ????

0

W zasadzie nic z tego co napisałeś nie jest poprawnie. Ani to co masz ani to co chcesz zrobić.
Logika biznesowa to nie managed bean! Logika biznesowa w JEE to jest albo EJB albo CDI i powinna być zupełnie niezależa od frontendu aplikacji. Managed bean to jest coś z JSF więc jest ściśle powiazany z technologią frontendową. Managed bean powinien tylko wywoływać odpowiednie serwisy z warstwy logiki, nic więcej.

Z tego też wynika twój problem -> skoro twój projekt teraz nie jest poprawnie podzielony zgodnie z MVC/MVP to wystawienie logiki jako webservices staje sie niemożliwe i wymaga kombinowania. Jakbyś miał tą logikę w EJB to mógłbyś jedna adnotacją wystawić z tego webservice.

Modyfikacja tych istniejących managed beanów będzie polegała na tym, że musisz użyć JAX-WS do komunikacji z webservicami.

0

ok rozumiem wzorowałem się trochę na tym materiale

wiekszość jest w entity i facade czyli na pewno ejb

większość dzieje się w kontrolerze który ma deklarację np.

@named(value = "uzytkownikController")
@SessionScoped
public class UzytkownikController implements Serializable {

te rzeczy z kontrolera przenieść na poziom ejb ?

@Stateful
public class przykladKlasaejbl {

0

Ja bym jednak proponował @Stateless bo ze stateful to webservice nie zrobisz ;)

0

czym się kierować przy przenoszeniu do ejb metod z managed bean gdzie jest granica co jest związane z widokiem a co z danymi są zasady ???

0

Tak, zasada nazywa sie zdrowy rozsądek ;] Managed bean nie powinien zawierać ŻADNEJ logiki ;] Managed bean, tak jak zresztą każdy Kontroler/Prezenter powinien wywołać metodę/metody na warstwie logiki, opakować wyniki w jakieś ładne pasywne DTO i wysłać to DTO do warstwy widoku.

0

dzięki

0

przebudowałem klasy do modelu mvc

mam pytanie czy jakoś trzeba specjalnie przygotować się, do przekazywania listy obiektów, przez bean ejb udostępniony jako Web Service,
listy która będzie zawartością wierszy tabeli <h:dataTable w pliku jsf drugiej aplikacji

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