2013-03-22 9 views
8

Sono confuso tra la differenza di javax. faces-2.1.14.jar da jsf-api-2.2.0-m05.jar e jsf-impl-2.2.0-m05.jar Sto provando a creare un progetto jsf senza usare Maven e durante la ricerca di esempi che ho visto diverse dipendenze jar su diversi tutorial. Il tutorial di coreservlets utilizza javax.faces-2.1.14.jar e l'altro tutorial che ho visto da un altro sito utilizza 2 file jar jsf-api-2.2.0-m05.jar e jsf-impl-2.2.0-m05. jar Mi piacerebbe conoscere la differenza di queste due serie di dipendenze. Grazie in anticipo ragazzi.Qual è la differenza tra javax.faces-2.1.14.jar da jsf-api-2.2.0-m05.jar e jsf-impl-2.2.0-m05.jar

risposta

19

Il jsf-api-xxx.jar contiene classi che si trovano sotto pacchetti pacchetto java javax.faces. Le classi in questo jar sono l'implementazione dell'API standard definita dalla specifica JSF. Lo jsf-impl-xxx.jar contiene classi che si trovano sotto il pacchetto java com.sun.faces, che, come indica il pacchetto java, è la classe di Sun per l'implementazione JSF.

Lo javax.faces-xxx.jar unisce effettivamente i due file jar precedenti. Nel repository Maven, è sotto org.glassfish groupId. All'interno troverai sia il pacchetto javax.faces e com.sun.faces java.

Quindi, cosa dovresti usare per il tuo sviluppo? In realtà puoi usare entrambi. Ma il modo consigliato è di includere jsf-api-xxx.jar solo nel classpath della compilation. Pertanto la propria applicazione non dipende da alcuna classe nel pacchetto com.sun.faces per ottenere la portabilità in altre implementazioni JSF. Se si sta utilizzando un'applicazione come GlassFish, il contenitore deve già fornire l'implementazione JSF in fase di runtime. Non dovresti comprimere i file jar JSF di cui sopra con il tuo file war o ear, dato che il server fornirà tutti loro. Se si utilizza un contenitore che non viene fornito con un'implementazione JSF per impostazione predefinita come Tomcat, è necessario il pacchetto javax.faces-xxx.jar o (jsf-api-xxx.jar + jsf-impl-xxx.jar) nel numero WEB-INF/lib.

+1

Questo era il tipo di descrizione e confronto che stavo cercando. Anche il caso d'uso, in particolare l'ultimo paragrafo, è esattamente la domanda che mi dava fastidio. Grazie! – royjavelosa

+0

@royjavelosa Contento di poter aiutare – Lan

0

Sono versioni differenti.

  • javax.faces-2.1.14.jar è un file JAR combinata per 2.1.14
  • jsf-api-2.2.0-m05.jar e JSF-impl-2.2.0-m05.jar sono JAR distinti per 2.2.0-m05.

Le differenze tra le versioni sono disponibili nelle note di rilascio, ma 2.2 e 2.1 non sono banalmente diverse.

Problemi correlati