JSF welcome file is not recognized

11,028

The <welcome-file> is supposed represent the file name of the file which is default to be loaded whenever a folder is been requested.

<welcome-file>index.xhtml</welcome-file>

If you're using JSF 2.x, then I suggest to replace /faces/* URL pattern by *.xhtml, then the above will work and you do not need to fiddle with /faces paths in URLs anymore. Or, if you're using JSF 1.x, then I suggest to replace the /faces/* URL pattern by *.jsf and provide an empty index.jsf file next to index.xhtml in the folder to fool the container that the file really exist.

Share:
11,028
Albert Gan
Author by

Albert Gan

http://albertkam.blogspot.com https://sites.google.com/site/tnhdhamma/

Updated on June 27, 2022

Comments

  • Albert Gan
    Albert Gan about 2 years

    Accessing

    http://localhost:8080/basicSetup/faces/index.xhtml
    

    works, with the output of :

    Hello World ! Albert Kam

    but accessing

    http://localhost:8080/basicSetup
    

    shows

    Hello World ! #{myBean.value}

    meaning that the welcome file is not rendered as a JSF file

    I would like http://localhost:8080/basicSetup to have the same effect as accessing http://localhost:8080/basicSetup/faces/index.xhtml.

    Please share your thoughts

    jetty-maven-plugin:8.0.3.v20111011:run + jdk 7 + eclipse indigo

    Here is my web.xml file :

    <?xml version="1.0" encoding="UTF-8"?>
    
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
        version="2.5">
        <display-name>Basic Setup Web Application</display-name>
        <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>/faces/*</url-pattern>
        </servlet-mapping>
        <welcome-file-list>
            <welcome-file>faces/index.xhtml</welcome-file>
        </welcome-file-list>
        <listener>
            <listener-class>
                com.sun.faces.config.ConfigureListener
            </listener-class>
        </listener>
        <context-param>
            <param-name>javax.faces.PROJECT_STAGE</param-name>
            <param-value>Development</param-value>
        </context-param>
    </web-app>
    

    and this is the jetty maven plugin output :

    [INFO] >>> jetty-maven-plugin:8.0.3.v20111011:run (default-cli) @ BasicSetup >>>
    [INFO] 
    [INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ BasicSetup ---
    [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
    [INFO] Copying 0 resource
    [INFO] 
    [INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ BasicSetup ---
    [INFO] Nothing to compile - all classes are up to date
    [INFO] 
    [INFO] --- maven-resources-plugin:2.4.3:testResources (default-testResources) @ BasicSetup ---
    [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
    [INFO] skip non existing resourceDirectory C:\Users\albert\workspace\BasicSetup\src\test\resources
    [INFO] 
    [INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ BasicSetup ---
    [INFO] No sources to compile
    [INFO] 
    [INFO] <<< jetty-maven-plugin:8.0.3.v20111011:run (default-cli) @ BasicSetup <<<
    [INFO] 
    [INFO] --- jetty-maven-plugin:8.0.3.v20111011:run (default-cli) @ BasicSetup ---
    [INFO] Configuring Jetty for project: BasicSetup Maven Webapp
    [INFO] webAppSourceDirectory C:\Users\albert\workspace\BasicSetup\src\main\webapp does not exist. Defaulting to C:\Users\albert\workspace\BasicSetup\src\main\webapp
    [INFO] Reload Mechanic: automatic
    [INFO] Classes = C:\Users\albert\workspace\BasicSetup\target\classes
    [INFO] Context path = /basicSetup
    [INFO] Tmp directory = C:\Users\albert\workspace\BasicSetup\target\tmp
    [INFO] Web defaults = org/eclipse/jetty/webapp/webdefault.xml
    [INFO] Web overrides =  none
    [INFO] web.xml file = file:/C:/Users/albert/workspace/BasicSetup/src/main/webapp/WEB-INF/web.xml
    [INFO] Webapp directory = C:\Users\albert\workspace\BasicSetup\src\main\webapp
    2011-10-25 14:03:59.073:INFO:oejs.Server:jetty-8.0.3.v20111011
    2011-10-25 14:03:59.333:INFO:oejpw.PlusConfiguration:No Transaction manager found - if your webapp requires one, please configure one.
    2011-10-25 14:04:00.104:INFO:oejsh.ContextHandler:started o.m.j.p.JettyWebAppContext{/basicSetup,[file:/C:/Users/albert/workspace/BasicSetup/src/main/webapp/, jar:file:/C:/Users/albert/.m2/repository/org/glassfish/javax.faces/2.1.3/javax.faces-2.1.3.jar!/META-INF/resources/]},file:/C:/Users/albert/workspace/BasicSetup/src/main/webapp/
    2011-10-25 14:04:00.104:INFO:oejsh.ContextHandler:started o.m.j.p.JettyWebAppContext{/basicSetup,[file:/C:/Users/albert/workspace/BasicSetup/src/main/webapp/, jar:file:/C:/Users/albert/.m2/repository/org/glassfish/javax.faces/2.1.3/javax.faces-2.1.3.jar!/META-INF/resources/]},file:/C:/Users/albert/workspace/BasicSetup/src/main/webapp/
    2011-10-25 14:04:00.104:INFO:oejsh.ContextHandler:started o.m.j.p.JettyWebAppContext{/basicSetup,[file:/C:/Users/albert/workspace/BasicSetup/src/main/webapp/, jar:file:/C:/Users/albert/.m2/repository/org/glassfish/javax.faces/2.1.3/javax.faces-2.1.3.jar!/META-INF/resources/]},file:/C:/Users/albert/workspace/BasicSetup/src/main/webapp/
    Oct 25, 2011 2:04:00 PM com.sun.faces.config.ConfigureListener contextInitialized
    INFO: Initializing Mojarra 2.1.3 (SNAPSHOT 20110908) for context '/basicSetup'
    Oct 25, 2011 2:04:00 PM com.sun.faces.spi.InjectionProviderFactory createInstance
    INFO: JSF1048: PostConstruct/PreDestroy annotations present.  ManagedBeans methods marked with these annotations will have said annotations processed.
    Oct 25, 2011 2:04:00 PM com.sun.faces.config.ConfigureListener$WebConfigResourceMonitor$Monitor <init>
    INFO: Monitoring file:/C:/Users/albert/workspace/BasicSetup/src/main/webapp/WEB-INF/faces-config.xml for modifications
    2011-10-25 14:04:00.787:INFO:oejsh.ContextHandler:started o.m.j.p.JettyWebAppContext{/basicSetup,[file:/C:/Users/albert/workspace/BasicSetup/src/main/webapp/, jar:file:/C:/Users/albert/.m2/repository/org/glassfish/javax.faces/2.1.3/javax.faces-2.1.3.jar!/META-INF/resources/]},file:/C:/Users/albert/workspace/BasicSetup/src/main/webapp/
    2011-10-25 14:04:00.825:INFO:oejs.AbstractConnector:Started [email protected]:8080 STARTING
    [INFO] Started Jetty Server
    [INFO] Starting scanner at interval of 10 seconds.