簡體   English   中英

JSF2.0-* .xhtml頁面提供404-NotFound但* .jsp可以嗎?

[英]JSF2.0 - *.xhtml pages give 404-NotFound but *.jsp work okay?

我已經安裝了Weblogic 10.3.5。 我在服務器上部署了JSF 2.0 War。 在我的WebContent文件夾中,有* .xhtml和* .jsp文件,它們分別包含JSF2.0 xhtml和純JSP代碼。 當我導航到http://localhost:7001/MyApp/NewFile123.xhtml ,出現404 Not found錯誤頁面。 (在Eclipse控制台上沒有提供任何信息)。 但是http://localhost:7001/MyApp/NewFile.jsp可以很好地工作,並且可以完成http://localhost:7001/MyApp/NewFile.jsp工作。

我不是在混合JSF和JSP,而只是想看看JSP是否可以工作。 我有適合XHTML文件的servlet映射。

我的班級路徑上也有這些:

  • glassfish.el_1.0.0.0_2-2.jar

  • glassfish.jsf_1.0.0.0_2-1-5.jar

  • glassfish.jstl_1.2.0.2.jar

  • javax.servlet_1.0.0.0_2-5.jar

另一個有趣的事情是,當我嘗試編輯* .xhtml文件時,自動完成功能不起作用。 (即,它不會自動完成<h:outp 。它曾經在我使用開箱即用的JSF2.0的Weblogic 12.1時使用。

編輯:這是web.xml的相關部分

<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

那么,當我嘗試導航到JSF頁面時為什么會得到404? 有什么建議么?

我的班級路徑上也有這些:

  • glassfish.el_1.0.0.0_2-2.jar
  • glassfish.jsf_1.0.0.0_2-1-5.jar
  • glassfish.jstl_1.2.0.2.jar
  • javax.servlet_1.0.0.0_2-5.jar

/WEB-INF/lib刪除所有那些特定於容器的庫。 它們根本不屬於那里,容器已經隨它們一起運送了。 您的/WEB-INF/lib應該包含特定於Webapp的庫,而該庫未隨容器一起提供。

您的問題很可能是由於Weblogic 1.0.3.5是已經隨JSF 2.0一起提供的Servlet 2.5容器而造成的,但是您正在提供一個需要Servlet 3.0的JSF 2.1庫。 我不使用Weblogic,但是我已經讀到1.0.3.x需要一些特定的步驟來使JSF 2.0正常工作,另請參見此博客 這是相關的摘錄:

  • 從OTN下載並安裝最新的Oracle WebLogic Server 11g第1版(10.3.3)安裝程序之一 (嘗試使用ZIP安裝程序。真棒!輕巧!)
  • 創建一個新的示例域(任意命名)並啟動管理服務器
  • 打開管理控制台(http:// localhost:7001 / console /)
  • 部署JSF 2.0庫(部署-安裝-wlserver_10.3 \\ common \\ deployable-libraries \\ jsf-2.0.war
  • 找到您最喜歡的JSF 2.0示例(我將從mojarra-2.0.2發行版中獲取guessNumber東西)
  • 將具有以下內容的weblogic.xml文件添加到WEB-INF /文件夾中:

     <?xml version="1.0" encoding="UTF-8"?> <weblogic-web-app> <library-ref> <library-name>jsf</library-name> <specification-version>2.0</specification-version> <implementation-version>1.0.0.0_2-0-2</implementation-version> <exact-match>true</exact-match> </library-ref> </weblogic-web-app> 

根據評論更新

我現在懷疑這可能是由於項目設置所致。 我創建了一個動態Web項目,並選擇了JSF 1.2。 在下一步中,它要求我提供JSF規范和實現,我將他指向那些玻璃魚jsf2罐。 默認值為1.2。 也許我不應該那樣做嗎?

這可能會生成符合JSF 1.2的faces-config.xml ,這將迫使JSF 2.0以JSF 1.2方式運行。 您需要重新聲明<faces-config>根聲明以符合JSF 2.0。

<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM