2017-08-07 61 views
0

試圖啓動J2EE服務器預覽的Eclise的Maven網絡項目(在Glassfish4,它工作正常),我得到一個錯誤:J2EE預覽錯誤

java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet 

Howewer,試圖使修復像在這個論壇上的另一個topik建議: 設置在properties-> project-> fasets->用戶庫jsf-api-2.1,jar (作爲外部jar,什麼是不好), 我得到另一個錯誤:

Started [email protected]{HTTP/1.1,[http/1.1]}{0.0.0.0:8080} 
java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/faces/webapp/FacesServlet 

正在搜索對於解決方案,我發現信息,這是由類 javaee-web-api導致的只是藍圖和服務器必須有他們的implementationaion。 這就是爲什麼,比如你寫的那個行家依賴所提供,如:

<dependency> 
    <groupId>javax</groupId> 
    <artifactId>javaee-web-api</artifactId> 
    <version>7.0</version> 
    <scope>provided</scope> 
    </dependency> 

所以我想,在這個外部JAR過,它只是不要以爲被包括在內。我必須添加什麼jar來解決這個問題,還是有另一個更好的解決方案呢?

+0

只是讓你好世界的教程,並檢查該到處奔走精細,否則會somethingwrong定義有 – user8426627

回答

0

您可以將以下依賴項添加到項目pom.xml 並嘗試更新項目。

<dependency> 
    <groupId>com.sun.faces</groupId> 
    <artifactId>jsf-api</artifactId> 
    <version>2.1.7</version> 
</dependency> 
<dependency> 
    <groupId>com.sun.faces</groupId> 
    <artifactId>jsf-impl</artifactId> 
    <version>2.1.7</version> 
</dependency> 

,或者您也可以添加

<dependency> 
    <groupId>javax.faces</groupId> 
    <artifactId>jsf-api</artifactId> 
    <version>2.1</version> 
    <scope>provided</scope> 
</dependency> 
+0

嚴重:應用程序未正確啓動時初始化的,不能找到Factory:javax.faces.context.FacesContextFactory。試圖找到備份。 2017-08-07 06:43:06.501:WARN:oejshC.JEETutorials:main:unavailable java.lang.IllegalStateException:找不到工廠javax.faces.context.FacesContextFactory的備份。 – user8426627