Newsgroup: it.comp.java
Titolo: jboss seam

Ciao,
sto cercando di imparare a utilizzare il framework seam di jboss, e ho
alcuni dubbi di base.
Io sono abituato a sviluppare applicazioni il cui flusso era più o
meno questo
client (jsp o swing) -> service locator -> bean di gestione -> entity
ora non riesco più a ritrovarmi con seam:
gli entity ci sono ancora e sono classi che (semplicisticamente)
gestiscono una tabella.
poi ho visto che ci sono:
form
action
conversation
session bean
per fare un parallelo con il vecchio i session bean dovrebbero essere
quelli che io chiamavo bean di gestione ovvero bean che non mappano
nessuna tabella, ma dove c'e' la logica di business
gli altri tre non li ho molto capiti:
che differenza c'è fra una form e un action e un conversation?
quello che era il service locator dove è finito? ovvero come faccio a
dire a un bottone su una pagina html che deve chiamare un metodo sul
session bean?
Sicuramente sto facendo molta confusione, ma è due settimane che
faccio progetti di prova (con eclipse) su progetti e non ne  esco (ho
anche  già letto in parte il tutorial...)
Grazie in anticipo per qualunque chiarimento...
Alessandro

 session bean
Stai facendo confusione. Non c'e' alcuna novita' rispetto al solito MVC, 
neppure con Seam.
Abbiamo
-il model (che possono essere gli @Entity),
-il controller: statefull o stateless bean se vuoi usare EJB, un normale 
Java Bean se non vuoi usare EJB
-la view, Seam predilige le Facelets, ma puoi ancora usare le JSP se vuoi.
Per quanto riguarda conversation non e' altro che un bean messo in uno 
scope particolare (ne request ne session).
Comunque ho l'impressione che tu ti sia buttato su Seam senza avere idea 
di cosa sia JSF, EJB e compagnia bella. Un passo indietro non guasta.

 
aleee...@gmail.com
 ha scritto:

Vero, mi sto buttando un po alla veloce. Solo che ho letto pareri
cosi' favorevoli che mi piacerebbe studiarlo.
Qualche vaga (molto vaga) idea di JSF e EJB sto iniziando a farmela
rpovo a studiare ancora un po'.
Mi puoi solo dare ancora un indicazione sulla differenza fra una
action e una form?
Ti spiego da dove nasce la mia confusione: con eclipse e un i plugin
di jboss quando faccio un seam web project mi propone fra le varie new
anche nuova form seam e nuova action seam: ho provato a crearle ma non
ho capito che differenza ci sia fra le 2: per entrambe mi sembra
vengano generate cose simili...
Grazie, ciao
p.s. secondo te è valido come framework ? a me piacerebbe fare delle
rich internet application

 di cosa sia JSF, EJB e compagnia bella. Un passo indietro non guasta.
Gia'. Quando si dice che Seam deingegnerizza tutto c'e' un piccolo dttaglio
: de-ingegnerizza significa che comunque c'e' una ingegnerizzazione (
fortissima ) che poi viene destrutturata. Il pericolo e' proprio fare un
casino totale per chi non ha gia' acquisito l'Architettura JEE. Il mio
suggerimento e' di studiarsi bene le JSF e hibernate individualmente e poi
passare a Seam che di fatto non fa molto piu' che da olio di amalgama.
Per quanto riguarda la donamda specifica di Ale che chiede la differenza fra
form e action fossi in lui cercherei di cambiare il modo di ragionare e
basta, Non esiste nessun form, al limite potremmo classificare alcuni
stateful che rispondono direttamente alle JSF come action ma e' solamente un
modo di pensare, nulla piu'. Qualsiasi Ejb e' chiamabile nelle JSF quindi di
fatto sono tutti action.
Ciao buon lavoro
Buon Lavoro
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 D) Gli entity li vedrei con una Data layer
Sono model e oggetti di persistenza. Il fatto che JPA o Hibernate 
abbiano un sistema di mappaggio cosi' potente consente di tenere in 
un'unica classe gli oggetti ritornati dal motore di persistenza e il 
model, appunto, senza alcun passaggio intermedio.

 model, appunto, senza alcun passaggio intermedio.
negli entity non si mette business logic ma solo dati o al limite piccole
procedure di manipolazione dati
Per tanto , pur facendo parte del model , non hanno BL e quindi e' molto
corretto considerarli il data-layer del MODel
ciao Nicola


 corretto considerarli il data-layer del MODel
Allora, User e' model in qualsiasi caso. Se questo e' annotato tramite 
le JPA allora diventa *anche* un Entity.
@Entity
public class User ... {
}
Ecco questo e' un entity ma e' anche un model.
public class User ... {
}
invece fa solo parte del model.

 ha scritto:
Direi che il dibattito e' piu' che interessante :-)
Riparto dalla tua visione dell MVC in Seam
"
-il model (che possono essere gli @Entity),
-il controller: statefull o stateless bean se vuoi usare EJB, un normale
Java Bean se non vuoi usare EJB
-la view, Seam predilige le Facelets, ma puoi ancora usare le JSP se vuoi.
"
e qua abbiamo la deefinizione Wikipedia
"
Model
The domain-specific representation of the information on which the
application operates. Domain logic adds meaning to raw data (e.g.,
calculating if today is the user's birthday, or the totals, taxes, and
shipping charges for shopping cart items).
Many applications use a persistent storage mechanism (such as a database) to
store data. MVC does not specifically mention the data access layer because
it is understood to be underneath or encapsulated by the Model.
View
Renders the model into a form suitable for interaction, typically a user
interface element. Multiple views can exist for a single model for different
purposes.
Controller
Processes and responds to events, typically user actions, and may invoke
changes on the model.
"
-- VIEW --
Sulla view diei che siamo tutti d'accordo ed e' come dicevi tu la parte di
rendereing delle JSF cioe' le facelet/jsp
mi pare che dobbiamo capire e chiarire chi sono e cosa fanno il model e il
controller.
Facciamo un passo indietro, e ricordiamo che MVC e' un pattern degli anni
'70 che fu inventato non per il web che non c'era ma per modellare un ben
piu' vasto settore di processi
prendiamo anche la prima riga di wikipedia :
"
Model-view-controller (MVC) is an architectural pattern used in software
engineering. Successful use of the pattern isolates business logic from user
interface considerations, resulting in an application where it is easier to
modify either the visual appearance of the application or the underlying
business rules without affecting the other. In MVC, the Model represents the
information (the data) of the application and the business rules used to
manipulate the data, the View corresponds to elements of the user interface
such as text, checkbox items, and so forth, and the Controller manages
details involving the communication to the model of user actions such as
keystrokes and mouse movements.
"
L'idea e' che un Processo si puo' scomporre in 3 tipi di eventi:
-) Azioni e interazioni, ceh vanno controllate
-) Modelli, cioe' accesso ai dati e operazioni di logica sui dati
-) Presentazione dei dati
E' di fatto l'evoluzione della macchina di touring
-- CONTROLLER --
"the Controller manages details involving the communication to the model of
user actions such as keystrokes and mouse movements."
Il Controller e' quindi quello che intercetta gli eventi dell'uomo. Il
phaseListener e' proprio quello che lo fa, e in generale le JSF, che sono
appunto MVC reagiscono agli eventi, controllano gli eventi in arrivo e
passano la palla agli ejb stateful di seam che utilizzano gli entity per
operare sui dati.
--MODEL--
Gli ejb nel loro insieme sono quindi i modeler che realizzano il MODEL e
alla lettera dalle paroledi wikipedia operano sui dati cosi' "represents the
information (the data) of the application and the business rules used to
manipulate the data"
Distinguere fra stetfull e entity e' un ulteriore grado di dettagliamento
dell'intero model distinguendolo fra layer BL e layer Dati, ma sempre MODEL
e'.
le classi pure in seam sono "slave" degli ejb.
ciauz



Allora, ho letto con molto interesse e mi sto rendendo conto che
effettivamente mi manca qualche concetto di base:-)
La mia confusione fra From e Action è data dal plugin di eclipse che
fra le proposte mi da questi 2 elementi.
Con la form in pratica mi genera una pagina che gestisce un azione
statefull a cui si passa un valore (c'e' un textfield, e un bottone).
Con la action invece mi genera una pagina che gestisce una azione
stateless(c'e' solo il bottone)
Ho provato a generare un po' di codice partendo dalle tabelle del db e
ho visto che la generazione automatica ti mette a disposizione una
grossa quantita di cose, e se si disegna bene il db ho un ottimo punto
di partenza.
Sicuramente devo ragionare in maniera molto diversa da quello a cui
sono abituato (se ho capito bene la parola chiave sono conversation e
page)
Grazie molto delle risposte.
Ciao
Alessandro

 Alessandro
Ciao NIcola


 Il 19 Apr 2008, 21:11, 
aleee...@gmail.com
 ha scritto:
Perfetto: seguo i vari step uno alla volta.
Sei stato estremamente chiaro, e molto di aiuto: avevo proprio bisogno
di un elenco di passi da seguire.
Al momento sto facendo solo prove, per cercare di tenermi un minimo
aggiornato, e sperando che mi capiti anche qualcosa di concreto da
fare, purtroppo solo nei ritagli di tempo :-(.
In bocca al lupo per il tuo progettone, e poi se ti va (e se non sei
fuggito:-)) , sarei curioso di vederlo all'opera,se si tratta di
qualcosa di pubblico.
Grazie,
ciao
Alessandro


Ciao, sto facendo progressi (nel senso che inizio a capirci qualcosa).
Ho una domanda: ma voi seam-gen lo utilizzate?
lo trovate comodo? oppure preferite scrivere tutto a mano?
Grazie!
Ciao

 Ciao
ciao Buon lavoro :-)
Nicola


 Il 24 Apr 2008, 13:53, 
alee...@gmail.com
 ha scritto:
Fai il contrario :
Prendi la booking, e cambiaci nome e fanne il tuo progetto
Ciao Nicola



Ciao Ale e Cicap
una curiosita', dove abitate ?


 Inviato viahttp://
arianna.libero.it/usenet/
Torino
tu?


Nel nostro famoso progettone siamo in cerca di una o 2 persone che siano
disposte a essere formate su Seam , pero' essendo la questione abb urgente
se come voi fossero gia' almeno a mezza strada nel senso che non partite da
0 sarebbe favoloso.
In pratica ci sarebbe da fare per un mese e mezzo circa a tempo pieno e poi
c'e la possibilita' che il progetto andra' avanti anni. E' interessantissimo
il progetto.
Se uno di voi 2 e' interessato o chiunque sappia almeno le JSF poi io lo
formiamo al volo su Seam. Volendo non serve manco Hibernate per ora, perche'
il progetto non ha il DB.
Purtroppo per te siamo a Milano, e si lavorerebbe in sede nostra.
magari hai una zia qua hehe :-)
se mai contattate
nicola 9000 at 
libero.it


Io sono in provicia di Vicenza. Poi rischievamo il litigio di sicuro ;) 
  (scherzo eh)

On 3 Mag, 19:50, 
n...@libero.it
 (n.n) wrote:

Mi spiace, niente zie ;-), ma a parte quello non ce la farei con i
tempi, fra lavoro e famiglia è già tanto se riesco a dedicare una
mezza giornata alla settimana allo studio...
Peccato, sarebbe stata un a bella occasione di imparare per bene.
In bocca al lupo...

 (scherzo eh)
lollllll :-)
Se si discute vuole dire che c'e' dialogo.
Peccato VIcenza e Torino ... , comunque rileggendo il mio post forse non si
capiva bene ma sarebbe tutto retribuito ovviamente :-)
Azz sto impazzendo comunque, perche' oltre a Seam sono sotto Liferay, ad
esempio il remoting non funzia bene sotto liferay, sto facendo di quelle
porcate ( e nottate ) che non avete idea , ma ci si diverte dai, .... :-)
ciauz Nicola


 
Sviluppo una libreria JSF per gestire i GET, e nella prossima release ci 
sara' il supporto per portlet (ho testato solo Liferray). Ho avuto i 
miei bei casini ;)
Per caso il problema e' che le URL del remoting superano i 255 caratteri?


cioe' ?
Il remoting di fatto wrappa la chiamata , io non vedo la url, potrei
sniffarla per vedere.
Comuqneu il problema specifico del remoting e' il seguente:
Funzia tutto bene nel senso che rintraccio gli ejb e rispondono bene.
Il problema e' che li creo nuovi in una session diversa da quella della
webapp ( delle jsf )
Sto impazzendo , ho provato anche a setttare i parametri di liferay per
eliminare la PRIVATE-SESSION ma nulla.
Chiaramente no session no conversation nada de nada, entro in una session
vergine.
dovrei passare il jsession alla chiamata , ma dovrei in pratica mettere le
mani sul codice del remoting
Inoltre faccio fatica a debuggare per insufficienza della macchina cosi' e'
un'impresa davvero tosta
Per ora ho risolto con dei trucchi in modo da proseguire con l'applicazione
e poi prima o poi la pizzico sta sessione.
Se ti viene in mente qualcosa per il mio problema avvisami ti prego. Daro'
un'occhiata alla lunghezza della URL appena posso
fra l'altro non ho i framwork ajax ceh non vanno sotto liferay+seam quindi
sono obbligato a usare il remoting
ciao Nicola
