2012-12-19 9 views
10

Sto facendo qualche lavoro di sviluppo in JSF con MyFaces e ho ricevuto questo avviso.Qual è la differenza tra lo sviluppo e la produzione in MyFaces

******************************************************************* 
*** WARNING: Apache MyFaces-2 is running in DEVELOPMENT mode. *** 
***           ^^^^^^^^^^^   *** 
*** Do NOT deploy to your live server(s) without changing this. *** 
*** See Application#getProjectStage() for more information.  *** 
******************************************************************* 

Qual è la differenza tra la modalità di sviluppo e quella di produzione? Ci sono rischi per la sicurezza? Sono solo miglioramenti delle prestazioni?

risposta

15

Non ci sono rischi per la sicurezza, ma ci sono comunque implicazioni sulla performance. Quando la fase del progetto è impostata sullo sviluppo, allora verrà più spesso registrato e verrà memorizzato meno nella cache.

Per quanto riguarda la registrazione, verranno registrate ulteriori informazioni di debug su come i componenti vengono creati e renderizzati. Ad esempio, se si dispone di un <h:inputText> senza alcun genitore <h:form>, questo verrà registrato e visualizzato come messaggio di facce. Tutti i messaggi delle facce in coda che non sono visualizzati in nessuno dei componenti <h:message(s)> verranno comunque visualizzati in un elenco di messaggi separato nella parte inferiore della pagina, con un carattere di avviso arancione, che indica i messaggi "non visualizzati". Inoltre, la gestione delle eccezioni è diversa, MyFaces invece della <error-page> mostra una pagina di errore ricca con dettagli sull'albero del componente e le variabili con scope.

Per quanto riguarda la memorizzazione nella cache, la cache di Facelet si aggiorna più regolarmente. Quindi se si apportano modifiche in un file Facelet e si preme F5, le modifiche verranno "immediatamente" riflesse. Questo non è vero per la fase di produzione, in pratica avresti bisogno di riavviare l'intero server.

Anche il file JavaScript jsf.js verrà visualizzato come versione non ancora terminata, consentendo un più facile debug JS nel browser. In fase di produzione, è invece la versione minificata, che è quindi più piccola e più veloce da servire, ma è completamente illeggibile.

Mojarra ha un comportamento molto simile, si aspetta dalla pagina di errore ricca.

Problemi correlati