2012-01-13 11 views
14

È possibile "condividere" una classe Java tra codice client GWT e codice server?Come posso condividere una classe tra codice client GWT e codice server?

Ho una classe semplice che contiene solo alcuni Strings e alcuni List<String>. Mi piacerebbe essere in grado di utilizzare questa classe sia nel codice lato client che nel codice lato server solo per una certa coerenza.

Solo per dare qualche background, la classe che sto cercando di condividere è solo un contenitore per un messaggio di errore con alcune informazioni extra. Nella mia applicazione ci sono alcuni errori che impediscono un salvataggio, quindi eseguiamo questi controlli sul lato client (prima di salvare). Quindi, dopo il salvataggio, eseguiamo più controlli di "validazione" sull'oggetto salvato sul lato server.

Capisco che dovrebbe essere "compilato" due volte, una volta per la compilazione di GWT e una volta per la normale compilazione di javac, ma sembra che dovrebbe essere possibile.

C'è un modo per impostare il mio progetto GWT per fare questo?

risposta

18

Uno dei motivi dell'utilizzo di GWT consiste nel disporre di un modello di dominio singolo per client e server.

È prassi comune avere classi condivise tra codice server e lato client.

progetto Solitamente con GWT codice sorgente client divide a tre pacchetti

com.yourpackage 
       -shared 
       -client 
       -server 

dove shared pacchetto compila sia al codice Java byte e JavaScript, client a JavaScript e logica lato server viene posto in server pacchetto.

Il percorso di compilazione per il client può essere configurato nel file *.gwt.xml.

+3

Lo standard per GWT è utilizzare il nome 'shared'. Detto questo, buona risposta. +1 –

+0

Chris, d'accordo, grazie. –

+4

Grazie Mairbek, questo ha funzionato per me. Per essere un po 'più specifici, non avevamo un pacchetto "condiviso", quindi ho dovuto creare un nuovo pacchetto. Ho anche dovuto aggiungere una riga al mio file * .gwt.xml: '' – cshanes

Problemi correlati