我有在servlet容器中運行JSF 2.0的mojarra依賴關係。
你的意思是你修改所提供的聚甲醛的依賴作爲意見建議:
<dependencies>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<!--
Uncomment these dependencies and comment out the one above to use
a simple servlet container instead of a Java EE Application Server
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>[2.0.1,)</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>[2.0.1,)</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jstl-impl</artifactId>
<version>1.2</version>
</dependency>
-->
</dependencies>
你能否證實?實際上,顯示修改後的pom可能會有所幫助。
當我使用「在服務器上運行」總是說「不能在jsf-api.jar
發現javax.faces.web.FacesServlet
我猜你的意思javax.faces.webapp.FacesServlet
,它肯定是,而且將jsf-api.jar
和jsf-impl.jar
到WEB-INF/lib
should also work。您正在使用m2eclipse嗎?
但是當部署到另一個tomcat實例(沒有mojarra罐子)時它可以正常工作
你的意思是在Eclipse之外?沒有把Mojarra罐子放在Tomcat的lib文件夾中?
是的,我取消註釋這些依賴關係。但爲了在eclipe中運行它,我必須將mojarra jar放入tomcat lib文件夾中。 當我打包它,並且因爲jsf依賴項具有編譯範圍,這些jar已經在WEB-INF/lib中。然後我將它部署到一個新的tomcat實例中,它的工作原理沒有抱怨ClassNotFoundException。 我的問題是我不能在eclipse中運行項目,而無需將這些jar放到eclipse的tomcat實例中。 – robinmag 2010-08-03 09:38:48
@robinmag:我會稍後再試。聽起來怪怪的。 – 2010-08-03 09:53:30
@robinmag:無法重現... – 2010-08-04 02:50:31