我目前在 Apache Tomcat 6.0.13 上使用 JSF 1.1 , maven 2。
我计划从JSF 1.1迁移到1.2。有人能指点我: - 最好使用什么JSF实现 - 这个实现是否可以在maven中央存储库中找到 - 我需要调整哪部分代码(我在我的项目中使用自定义标签,但除此之外它都是普通的JSF)
等
任何信息都会有所帮助...... Thanx!
[编辑1]:
嗯,它对我没用。无法从您指定的存储库下载依赖项。也许是因为这是 maven 1 存储库的链接。我正在使用以下pom设置: <dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>1.2</version>
<type>jar</type>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/jsf-api.jar</systemPath>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>1.2</version>
<type>jar</type>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/jsf-impl.jar</systemPath>
</dependency>
我希望这种方法是正确的。如果某人有更友好的解决方案,请告知。感谢名单!
[编辑2]: 我从1.1改变了我的JSF jar后。到1.2,应用程序启动时发生以下错误:
java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory:
javax.faces.context.FacesContextFactory
要修复此错误,需要在web.xml中添加其他侦听器:
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
答案 0 :(得分:3)
查看以下发行说明,其中包含1.1到1.2的迁移指南 http://java.sun.com/javaee/javaserverfaces/docs/ReleaseNotes.html
JSF 1.2的maven2工件已经在位于http://http://repo1.maven.org/maven2的标准maven2存储库中找到了方法
JSF实施
http://repo2.maven.org/maven2/javax/faces/jsf-impl/1.2-b19/
JSF API
http://repo1.maven.org/maven2/javax/faces/jsf-api/1.2-b19/
因此,您不应在pom.xml或settings.xml
中设置任何特殊的存储库设置依赖关系可以在pom中定义如下(1.2-b19是撰写本文时的最新版本):
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>1.2-b19</version>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>1.2-b19</version>
</dependency>
下面是一个完整的pom.xml,它应该包含启动JSF 1.2项目的基本依赖项
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ecs.sample.jsf</groupId>
<artifactId>SampleJsfPom</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>1.2-b19</version>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>1.2-b19</version>
</dependency>
<dependency>
<groupId>com.sun.facelets</groupId>
<artifactId>jsf-facelets</artifactId>
<version>1.1.11</version>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.7.0</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>