以我JSF2應用我所面臨的一個Primefaces NPE(5.1)自動填充在差分com.sun.faces> JSF-IMPL的/平等和org.glassfish> javax.faces(2.2.4)
org.primefaces.component.autocomplete.AutoCompleteRenderer .encodeSuggestionsAsList(AutoCompleteRenderer.java:492)
我已經通過更換行家依賴
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.2.4</version>
</dependency>
解決了我的問題,通過
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.2.4</version>
</dependency>
這讓我很困惑。
搜索項目主頁,我發現這些Maven倉庫:
http://mvnrepository.com/artifact/com.sun.faces/jsf-impl/2.2.4
http://mvnrepository.com/artifact/org.glassfish/javax.faces/2.2.4
他們都要求相同的描述和引用相同的URL爲主頁:
說明:Oracle的實現 - JSF 2.2規範(2.2.4)
主頁:http://java.sun.com/javaee/javaserverfaces/
有人可以解釋這種差異嗎?不應該完全一樣嗎?
提示:我知道太陽和甲骨文的歷史。 ;)
我使用的是tomcat 8.0.15和JDK 1.8.0_25。 'jsf-api'一直是依賴項的一部分。但我不知道'org.glassfish:javax.faces'是一個包。現在我將刪除jsf-api。但是除了自動完成部分,應用程序正在工作,而且實現不應該完全相同嗎? – ChristophS
但是'javax:javaee-api 7.0'是我的依賴項的一部分。 – ChristophS
Tomcat不是Java EE容器。這是一個準系統JSP/Servlet容器。如果你想要一個Java EE容器,那麼去TomEE或WildFly。 – BalusC