我使用Geronimo和J2EE 5以及Tomcat 6,並試圖使用JSF創建一個簡單頁面。我把標籤庫文件myfaces_core.tld
和myfaces_html.tld
放在WEB-INF
中,它可以工作,但只是在Windows上。在Linux下,當我部署WAR時,我得到了IOException
和未知原因。刪除兩個標籤庫文件使得部署成爲可能。但是當我在瀏覽器中打開該頁面時,出現錯誤。它缺少文件WEB-INF/myfaces_html.tld
,它在JSP文件的頭文件中指定。在MyFaces的示例中,不使用MyFaces TLD,而使用普通的Sun Java TLD。我已將URI WEB-INF/myfaces_html.tld
覆蓋爲http://java.sun.com/jsf/html
螞蟻現在我收到錯誤絕對uri:http://java.sun.com/jsf/html無法在web.xml或使用此應用程序部署的jar文件中解析。失去的JSF初學者:Linux,Geronimo和標籤庫
我迷路了。我必須或必須將標記庫描述文件放入我的WAR以使用JSF組件嗎?這些文件已經包含在Geronimo Container的MyFaces JAR中,不是嗎?容器必須具有相同的行爲,無論是平臺還是不需要?我該怎麼做才能真正實現與平臺無關的簡單應用?
Linux上的JSF-servlet似乎有些問題。在Windows上它工作。 Geronimo已經包含JSF實現(MyFaces)。根據(MyFaces教程)JSF標準,從[WEB-INF]目錄中刪除TLD文件並更新HTML和Core庫的URI(將URI更改爲'http://java.sun.com/jsf/ html'和'http:// java.sun.com/jsf/html')只是一個小改正,沒有任何效果。它在Windows下工作,而不是在Linux下工作。 _unknown reason_很可能在Linux上的Geronimo容器中的某處,位於JSF servlet中。 –
如果容器已經附帶了JSF,你實際上不應該在webapp中包含任何東西,或者你需要指定一個特定於容器的配置文件或上下文參數,它指示容器**而不是**加載容器捆綁的JSF庫(這對於JBoss AS,Glassfish等至少如此)。 – BalusC