Was ist der Unterschied zwischen javax.faces-2.1.14.jar von jsf-api-2.2.0-m05.jar und jsf-impl-2.2.0-m05.jar

8

Ich bin verwirrt zwischen dem Unterschied von javax.faces-2.1.14.jar von jsf-api-2.2.0-m05.jar und jsf-impl-2.2.0-m05.jar Ich versuche, ein JSF-Projekt zu machen, ohne Maven zu verwenden, und während ich nach Beispielen suchte, sah ich verschiedene Jar Abhängigkeiten auf verschiedenen Tutorials. Das Tutorial von coreservlet verwendet javax.faces-2.1.14.jar und das andere Tutorial, das ich von einem anderen gesehen habe Website verwendet 2 JAR-Dateien jsf-api-2.2.0-m05.jar und jsf-impl-2.2.0-m05.jar Ich möchte den Unterschied zwischen diesen beiden Abhängigkeiten kennen. Vielen Dank im Voraus Jungs.

    
royjavelosa 22.03.2013, 01:48
quelle

2 Antworten

19

Das jsf-api-xxx.jar enthält Klassen, die sich unter den Paketen java package javax.faces befinden. Die Klassen in diesem Jar sind die Implementierung der Standard-API, die durch die JSF-Spezifikation definiert wird. Das jsf-impl-xxx.jar enthält Klassen, die sich unter dem Java-Paket com.sun.faces befinden, was, wie das Java-Paket angibt, die eigene Klasse von Sun für die JSF-Implementierung ist.

Das javax.faces-xxx.jar führt die beiden vorherigen JAR-Dateien zusammen. Im Maven-Repository befindet es sich unter org.glassfish groupId. Sie werden sowohl javax.faces als auch com.sun.faces java package darin finden.

Was sollten Sie für Ihre Entwicklung verwenden? Eigentlich können Sie beides verwenden. Der empfohlene Weg besteht jedoch darin, jsf-api-xxx.jar nur in den Kompilierungsklassenpfad aufzunehmen. Daher hängt Ihre eigene Anwendung nicht von Klassen unter com.sun.faces package ab, um die Portabilität für andere JSF-Implementierungen zu erreichen. Wenn Sie eine Anwendung wie GlassFish verwenden, sollte der Container bereits zur Laufzeit die JSF-Implementierung bereitstellen. Sie sollten die obigen JSF-JAR-Dateien nicht mit Ihrer Kriegs- oder EAR-Datei verpacken, da der Server alle Dateien zur Verfügung stellt. Wenn Sie einen Container verwenden, der standardmäßig nicht mit einer JSF-Implementierung wie Tomcat geliefert wird, müssen Sie javax.faces-xxx.jar oder ( jsf-api-xxx.jar + jsf-impl-xxx.jar ) in WEB-INF/lib einpacken.

    
Lan 22.03.2013, 03:34
quelle
0

Sie sind verschiedene Versionen.

  • javax.faces-2.1.14.jar ist eine kombinierte JAR-Datei für 2.1.14
  • jsf-api-2.2.0-m05.jar und jsf-impl-2.2.0-m05.jar sind separate JARs für 2.2.0-m05.

Die Unterschiede zwischen den Versionen finden Sie in den Versionshinweisen, aber 2.2 und 2.1 sind nicht trivial.

    
EJP 22.03.2013 02:43
quelle

Tags und Links