I created a simple Web Application in Eclipse using JSF 2.2 and running it through WebSphere 8.5. However, when I pull the index page up in the browser using http://localhost:9082/HCVA/index.xhtml I just get a blank page. I wrote the whole web page just using JSF tags and when I look in the debugger I see that the JSF tags are not being rendered as HTML. If I add and HTML tag like <p>test</p> then it does show "test" in the browser. Here's the whole index page so far:
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets"> <h:head> <title>HCVA</title> </h:head> <h:body> <h:panelGroup id="header" layout="block" styleClass="headerClass"> <h:graphicImage value="/images/NewOntarioLogo.gif" alt="Ontario Logo" border="0" /> <h:outputText value="Health Card Viewer Application"/> <p>test</p> </h:panelGroup> <h:panelGroup id="navigate" layout="block"> </h:panelGroup> <h:panelGroup id="mainContent" layout="block"> </h:panelGroup> <h:panelGroup id="footer" layout="block" styleClass="footerClass"> <h:graphicImage value="/images/NewOntarioLogo.gif" alt="Ontario Logo" border="0" /> <br></br> <h:outputText value="This site is maintained by the Government of Ontario, Canada."/> <br></br> <h:link value="PRIVACY" outcome="http://www.ontario.ca/en/general/004222"/> <h:outputText value="|"/> <h:link value="IMPORTANT NOTICES" outcome="http://www.ontario.ca/en/general/004222"/> <br></br> <h:outputText value="Copyright information:"/> <h:link value="© Queen's Printer for Ontario, 2006" outcome="http://www.ontario.ca/en/general/004222"/> <br></br> <h:outputText value="Last Modified: 2009-12-12"/> </h:panelGroup> </h:body> </html> I've seen other posts about this and I know that this problem could mean that the page isn't passed through the FacesServlet. However, I have verified that the request URL used matches the url-pattern of the FacesServlet. Here's what my web.xml looks like:
<?xml version="1.0" encoding="UTF-8"?> <web-app 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-app_3_0.xsd" version="3.0"> <display-name>HCVA</display-name> <context-param> <description> The location where state information is saved. Valid values are 'server' (typically saved in HttpSession) and 'client' (typically saved as a hidden field in the form. Default is server.</description> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>server</param-value> </context-param> <context-param> <description> Comma-delimited list of context-relative resource paths under which the JSF implementation will look for application configuration resources, before loading a configuration resource named /WEB-INF/faces-config.xml (if such a resource exists).</description> <param-name>javax.faces.CONFIG_FILES</param-name> <param-value></param-value> </context-param> <context-param> <description> The default suffix for extension-mapped resources that contain JSF components. Default is '.jsp'.</description> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.xhtml</param-value> </context-param> <context-param> <description> A human readable string describing where this particular JSF application is in the software development lifecycle. Valid values are 'Development', 'UnitTest', 'SystemTest' and 'Production'. Default is 'Production'. This parameter is not available in JSF 1.x.</description> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param> <context-param> <description> Monitors Faces JSP files for modifications and synchronizes a running server with the changes without restarting the server. If this parameter is set to false or removed from the deployment descriptor, any changes made to Faces JSP files may not be seen by the server until it is restarted. This parameter is usually set to true while the Faces JSP files are being developed and debugged in order to improve the performance of the development environment.</description> <param-name>com.ibm.ws.jsf.JSP_UPDATE_CHECK</param-name> <param-value>true</param-value> </context-param> <context-param> <description> Load JSF runtime when the application server starts up. If this parameter is set to false or removed, JSF runtime will be loaded and initialized when the first JSF request is processed. This may disable custom JSF extensions, such as factories defined in the project.</description> <param-name>com.ibm.ws.jsf.LOAD_FACES_CONFIG_AT_STARTUP</param-name> <param-value>true</param-value> </context-param> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>-1</load-on-startup> <enabled>true</enabled> <async-supported>false</async-supported> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern> *.xhtml</url-pattern> </servlet-mapping> </web-app> Been troubleshooting this for a long time with no results. Any help would be appreciated.
xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets". And remove the web.xml and see what happens then. And check the logfile for errors (servlet version is most likely also too old)